javascript - Javascript:比较两个数组并用现有元素填充不匹配的元素
问题描述
我有一个数组1
var arr1 = ["27", "20", "18", "15", "14", "13", "8", "6", "2", "1"]
我有另一个数组 2,它总是显示从 1 到 30
var arr2 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30"]
我想比较这两个数组并在array1中填充“NULL”以获取array1中不存在的其余值
基本上我的最终数组应该显示为
finalArray = ["1", "2", null, null, null, "6", null, "8", null, null, null, null, "13", "14", "15", null, null, "18", null, null, null, null, null, null, null, null, "27", null, null, null]
尝试在第二个数组中循环第一个数组。但是未能将空值推送到其余元素。如何做到这一点?TIA
解决方案
您可以通过遍历 arr2 并检查当前项目是否在 arr1 中简单地执行以下操作。如果项目在 arr1 中,则将项目放入新数组中,否则放入 null,
var arr1 = ["27", "20", "18", "15", "14", "13", "8", "6", "2", "1"]
var arr2 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30"]
res = arr2.map(item => arr1.includes(item) ? item : null);
console.log(res);
推荐阅读
- android - 运行代码时显示进度对话框的问题
- c - C 移位表达式是否具有无符号类型?为什么 Splint 会警告右移?
- android - 回合制多人游戏:createMatch() 返回错误任务
- python - /index/ 'tab11' 处的 NoReverseMatch 不是有效函数
- mysql - MySQL 8.0:CTE WITH 不执行两个子条款
- json - 在 woocommerce_add_to_cart webhook 上发送的“arg”字段值是什么?
- nltk - 在 nltk 中有一个名为 sensor 的符号吗?
- angular - 使用@Input 禁用/启用按钮
- continuous-integration - TFS 构建失败 - 任务无法使用 SdkToolsPath 找到“AL.exe”
- c - 如何将随机字母成对存储在二维数组中?