javascript - 迭代二维数组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() 的任何组合。我必须求助于嵌套循环吗?
解决方案
您可以使用嵌套地图来做到这一点
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)
推荐阅读
- python - 使用 Python (xlwings) 将 excel doc 中的特定工作表打印为 PDF
- python - 使用梯形方法集成 SciPy 问题('numpy.ndarray' 对象不可调用)
- r - 将变音符号保存在 R 中的 .csv 中
- excel - Excel - 将文本反转为列
- c# - 调用 transform.Translate 时播放器不移动
- postgresql - 使用 GORM 从 JoinTable 获取具有顺序的关联对象
- wildcard - Snakemake 在新规则中指定新通配符
- python - 如何从主函数返回字符串?
- javascript - jQuery/Javascript - 如何在所有浏览器(尤其是 Safari)中获取与 CSS 断点一致的浏览器窗口宽度?
- r - 如何排除故障:RODBC 错误:状态 08001,代码 0,