📅  最后修改于: 2023-12-03 15:16:18.612000             🧑  作者: Mango
在Javascript中,我们有时候需要确保一个数组中必须包含来自给定范围内的所有数值。这个问题可以通过以下方式解决。
使用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.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()方法创建一个包含给定范围中的所有值的集合,并使用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()方法可能会更快一些。