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]