繁体   English   中英

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

[英]How do I get multiple index on an Array

我正在尝试在数组上获取 Boolean 值的多个索引位置。

我尝试使用whilefor应用循环来迭代多个索引 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM