【问题标题】:Multi Array filter based on another array基于另一个数组的多数组过滤器
【发布时间】:2021-03-29 19:14:40
【问题描述】:

我有一个多数组 (arr1) 和一个数组 (arr2)

var arr1 = [["Id", "Sku", "Name"], [10, "xxx", "yyy"], [20, "aaa", "eee"]];
var arr2 = ["Id", "Name"];

我希望当 arr1[0] 中的值不是 arr2 的元素时,所有索引值都会被删除,所以我会得到这个输出:

var arr3 =  if arr1[0] = arr2 
console.log(arr3); // [["Id", "Name"], [10, "yyy"], [20, "eee"]];

有什么帮助吗?

【问题讨论】:

  • 使用.map().filter()

标签: javascript jquery arrays array-filter


【解决方案1】:

首先,通过查看arr2 中是否存在键来构建要删除的索引列表。然后,返回arr1,并从每个元素中过滤掉这些索引。

function filterUnusedElement(inputElement) {
  const indexesToRemove = inputElement.reduce((acc, val, index) => arr2.includes(val) ? acc : [...acc, index], []);
  return arr1.map(i => i.filter((_,index) => !indexesToRemove.includes(index)));
}

console.log(filterUnusedElement(arr1[0]));
// [["Id", "Name"], [10, "yyy"], [20, "eee"]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    相关资源
    最近更新 更多