📌  相关文章
📜  javascript给定范围如何确保数组包含所有值? - Javascript(1)

📅  最后修改于: 2023-12-03 15:16:18.612000             🧑  作者: Mango

Javascript给定范围如何确保数组包含所有值?

在Javascript中,我们有时候需要确保一个数组中必须包含来自给定范围内的所有数值。这个问题可以通过以下方式解决。

方法一:使用for循环

使用for循环遍历给定范围中的所有值,并确保它们都在数组中存在。

const range = [1, 2, 3, 4, 5, 6];
const arr = [1, 3, 6];

for (let i = 0; i < range.length; i++) {
  if (!arr.includes(range[i])) {
    arr.push(range[i]);
  }
}

console.log(arr); // [1, 3, 6, 2, 4, 5]
方法二:使用Array.filter()

使用Array.filter()方法过滤出所有不存在于数组中的给定范围中的值,并使用Array.concat()方法将它们添加到原数组中。

const range = [1, 2, 3, 4, 5, 6];
const arr = [1, 3, 6];

const missingValues = range.filter(val => !arr.includes(val));
arr.concat(missingValues);

console.log(arr); // [1, 3, 6, 2, 4, 5]
方法三:使用Set()

使用Set()方法创建一个包含给定范围中的所有值的集合,并使用Array.from()方法和spread操作符将其转换为数组。接着使用Array.filter()方法过滤出所有不存在于原数组中但存在于给定范围中的值,并使用Array.concat()方法将它们添加到原数组中。

const range = [1, 2, 3, 4, 5, 6];
const arr = [1, 3, 6];

const set = new Set(range);
const missingValues = Array.from(set).filter(val => !arr.includes(val));
arr.concat(missingValues);

console.log(arr); // [1, 3, 6, 2, 4, 5]

以上三种方式都可以确保数组包含来自给定范围内的所有数值。使用哪种方式取决于具体的情况,但使用Set()方法可能会更快一些。