首页 > 解决方案 > 迭代二维数组1,更改数组2中列出的位置的项目

问题描述

我有二维数组和另一个一维数组。我想遍历二维数组,搜索列出一维数组的值。

如果找到该值,则将该值更改为 0,并将所有其他值更改为 1。

array2d = [
  [1, 2],
  [3, 4],
  [5, 6],
  [7, 8],
];

array1 = [1, 8]

//desired output:
array2d = [
  [0, 1],
  [1, 1],
  [1, 1],
  [1, 0], 
]

到目前为止,我找不到可以正常工作并保持简洁的 array.filter()、array.map() 或 array.reduce() 的任何组合。我必须求助于嵌套循环吗?

标签: javascriptarraysalgorithmfunctionmultidimensional-array

解决方案


您可以使用嵌套地图来做到这一点

const array2d = [
  [1, 2],
  [3, 4],
  [5, 6],
  [7, 8],
]

const array1 = [1, 8]

const output = array2d.map(sub => sub.map(el => array1.includes(el) ? 0 : 1))
console.log(output)


推荐阅读