JavaScript隨機2取1,是指從一個數組中隨機取兩個元素,然后只返回其中一個元素,這個過程需要使用Math.random()等函數。假設現在有一個數組arr,包含以下數據:
<code>var arr = ['apple', 'banana', 'cherry', 'durian', 'elderberry']; </code>
現在想要從中隨機取兩個元素,然后只返回其中一個元素。以下是實現代碼:
<code>var n = Math.random(); if(n > 0.5){ console.log(arr[0]); } else { console.log(arr[1]); } </code>
上面的代碼通過生成一個0-1之間的隨機數n,如果n>0.5,則輸出數組arr的第一個元素,否則輸出數組arr的第二個元素。這樣就實現了隨機2取1的功能。
當然,我們可以選擇不使用if語句,而是使用三目運算符實現:
<code>var n = Math.random(); console.log(n <= 0.5 ? arr[0] : arr[1]); </code>
這兩種方法都可以實現隨機2取1的功能,只是代碼實現方式略有不同。
對于更大的數組,我們可以使用循環語句來實現隨機多取一的功能:
<code>var arr = ['apple', 'banana', 'cherry', 'durian', 'elderberry']; var n = Math.floor(Math.random() * (arr.length - 1)); var result = []; for(var i = 0; i <= n; i++){ result.push(arr[Math.floor(Math.random() * arr.length)]); } console.log(result); </code>
上面的代碼中,我們先隨機生成一個小于數組長度的整數n,用這個n來控制循環次數,然后每次循環時隨機取出一個數組元素并放入一個新的數組中,最后輸出這個新數組。
在實際項目中,我們可以將上面的代碼封裝成一個函數,方便重復調用:
<code>function getRandom(arr, num){ var n = Math.floor(Math.random() * (num - 1)); var result = []; for(var i = 0; i <= n; i++){ result.push(arr[Math.floor(Math.random() * arr.length)]); } return result; } var arr = ['apple', 'banana', 'cherry', 'durian', 'elderberry']; var randomArr = getRandom(arr, 5); console.log(randomArr); </code>
上面的代碼中,我們將隨機取多少個元素作為參數傳入函數中,然后返回一個隨機數組。
通過以上的介紹可以看出,JavaScript隨機2取1并不是很難實現,只需要掌握一些基本的函數和語法就可以了。