首页 > 解决方案 > 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

标签: javascriptarraysloops

解决方案


您可以通过遍历 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);


推荐阅读