我如何在数组上获取多个索引

时间:2019-10-29 16:36:41

标签: javascript arrays

我试图在数组上获取布尔值的多个索引位置。

我尝试使用whilefor进行循环以迭代一个以上的索引位置,但到目前为止没有成功。

这是我的代码:

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

提前谢谢!

1 个答案:

答案 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