我试图在数组上获取布尔值的多个索引位置。
我尝试使用while
和for
进行循环以迭代一个以上的索引位置,但到目前为止没有成功。
这是我的代码:
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
提前谢谢!
答案 0 :(得分:0)
您似乎正在尝试获取两个数组之间的差。这是Sets的一个相当注释的用例。在这种情况下,您的代码将如下所示:
EXECUTE
如果要获取差异索引,则需要对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