Acquiring random integer encapsulated JavaScript

Function 1:

randomArr ({})
acquires a random number from 2 to 5 sections of 32

Function 2:

randomArr ({arr: [2, 3], i: 3})
Get five random numbers from 2 to 32 in the splicing section arr

Function 3:

randomArr ({3 arr:: [ 2, 2], i})
after 2 to 5 acquires a random number section 32 after the splice arr deduplication

Function 4:

randomArr ({10 arr: [2 , 2], i: 3, min:: 0, max})
after acquiring five sections 0 to 10 random numbers after splicing arr deduplication

Function 5:

randomArr ({arr: [2, 3, 5, 6], i: 3, length: 3, min: 0, max: 10})
Get three random numbers range from 0 to 10

Function 6:

randomArr ({10 arr: [2 , 11, 5, 23], i: 3, length: 3, min:: 0, max})
after obtaining 3 0 to 10 range the random number splicing remove number out of range after arr

 

 1 function randomArr({ arr = [], i = 0, length = 5, min = 2, max = 32 }) {
 2   if (arr.length) {
 3     arr = Array.from(new Set(arr));
 4   }
 5   if (arr.length >= length) {
 6     arr = arr.filter(item => item >= min && item <= max);
 7     if (arr.length >= length) {
 8       return arr.slice(0, length);
 9     }
10   }
11   if ((arr.length && !i) || (arr.length && i > arr.length)) {
12     i = arr.length;
13   }
14   var num = Math.floor(Math.random() * (max - min)) + min;
15   if (!arr.includes(num)) {
16     arr[i] = num;
17     i += 1;
18   }
19   return i < length ? randomArr({ arr, i, length, min, max }) : arr;
20 }
21 var result1 = randomArr({});
22 console.log(result1); // [4, 17, 30, 16, 12]
23 var result2 = randomArr({ arr: [2, 3], i: 3 });
24 console.log(result2); // [2, 3, 4, 12, 26]
25 var result3 = randomArr({ arr: [2, 2], i: 3 });
26 console.log(result3); // [2, 22, 11, 21, 19]
27 var result4 = randomArr({ arr: [2, 2], i: 3, min: 0, max: 10 });
28 console.log(result4); // [2, 8, 6, 4, 7]
29 var result5 = randomArr({
30   arr: [2, 3, 5, 6],
31   i: 3,
32   length: 3,
33   min: 0,
34   max: 10
35 });
36 console.log(result5); // [2, 3, 5]
37 var result6 = randomArr({
38   arr: [2, 11, 5, 23],
39   i: 3,
40   length: 3,
41   min: 0,
42   max: 10
43 });
44 console.log(result6); // [2, 5, 1]

 

Guess you like

Origin www.cnblogs.com/hiuman/p/11225541.html