如何在 JavaScript 中创建包含非重复元素的数组?
以下是生成包含n个非重复随机数的数组的两种方法。
- 使用 do-while 循环和包含()函数。
- 使用集合并检查其大小。
使用 do-while 循环和 includes()函数:在这里,includes()函数检查数组中是否存在元素。
文件名:index.js
JavaScript
// You can take this value from user
const n = 5
// Initial empty array
const arr = [];
// Null check
if (n == 0) {
console.log(null)
}
do {
// Generating random number
const randomNumber = Math
.floor(Math.random() * 100) + 1
// Pushing into the array only
// if the array does not contain it
if (!arr.includes(randomNumber)) {
arr.push(randomNumber);
}
} while (arr.length < n);
// Printing the array elements
console.log(arr)
JavaScript
// You can take this value from user
const n = 5
// Initial empty array
const arr = [];
// Null Check
if (n == 0) {
console.log(null)
}
let randomnumbers = new Set, ans;
// We keep adding elements till
// size of set is equal to n
while (randomnumbers.size < n) {
// Generating random number
// and adding it
randomnumbers.add(Math.floor(
Math.random() * 100) + 1);
}
// Copying set elements into
// the result array
ans = [...randomnumbers];
// Printing the array
console.log(ans)
使用以下命令运行index.js文件:
node index.js
输出:
[ 49, 99, 27, 86, 69 ]
时间复杂度:
O(n2)
使用集合并检查其大小:记住集合不允许重复元素。
文件名:index.js
JavaScript
// You can take this value from user
const n = 5
// Initial empty array
const arr = [];
// Null Check
if (n == 0) {
console.log(null)
}
let randomnumbers = new Set, ans;
// We keep adding elements till
// size of set is equal to n
while (randomnumbers.size < n) {
// Generating random number
// and adding it
randomnumbers.add(Math.floor(
Math.random() * 100) + 1);
}
// Copying set elements into
// the result array
ans = [...randomnumbers];
// Printing the array
console.log(ans)
使用以下命令运行index.js文件:
node index.js
输出:
[ 52, 32, 50, 59, 95 ]
时间复杂度:
O(n)