[英]How do I get multiple index on an Array
我正在尝试在数组上获取 Boolean 值的多个索引位置。
我尝试使用while
和for
应用循环来迭代多个索引 position 到目前为止没有成功。
这是我的代码:
let jo = [1,2,3,4,5]
let ji = [1,2,3]
let checker = (arr1,arr2) => {
let falsy = arr1.every(num => arr2.includes(num)) == false ?
arr1.map(falsy => arr2.includes(falsy)) : "tba";
//the block below is the frustrated attempt:
let i = falsy.indexOf(false);
while(i>=0){
return falsy.findIndex(ih => ih == false)
}
}
console.log(checker(jo,ji))
我想将发生false
的索引存储在一个变量中,该变量已遍历所有数组,因此我可以使用此变量仅返回falsy
上的错误值,如下所示:
return falsy[i] = [4,5]
然后,我将在第一个if
语句中添加更多内容以检查arr1 x arr2 or arr2 x arr1
提前致谢!
看起来您正在尝试区分两个 arrays。 这是Sets的一个相当评论的用例。 在这种情况下,您的代码将如下所示:
let jo = [1,2,3,4,5]
let ji = [1,2,3]
const checker = (arr1, arr2) => {
return new Set(arr1.filter(x => !new Set(arr2).has(x)))
}
console.log(checker(jo, ji)); // {4, 5}
如果要获取差异的索引,则需要将map
应用于new Set
的结果,如下所示:
const checker = (arr1, arr2) => {
const difference = new Set(arr1.filter(x => !new Set(arr2).has(x)));
return Array.from(difference).map(value => arr1.indexOf(v));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.