我有两个数组,如下所示
var arr = ["x", "y", "z", "a", "b", "c"];
var tgtArr = [{val:"a"}, {val:"b"}]; It does not need to be as lengthy as Array `arr`
这是我尝试过的
var dest = new Array(arr.length);
for(var i = 0; i < arr.length; i++){
for(var k = 0; k < tgtArr.length; k++){
dest[i] = dest[i] || [];
if(tgtArr[k].val == arr[i]){
dest[i] = arr[i];
}
}
}
console.log(dest);
我的预期输出是(对于上述tgtArr
值)
[{}, {}, {}, {val:"a"}, {val:"b"}, {}];
如果tgtArr
为空数组
[{},{},{},{},{},{}]
这是小提琴。对此的任何替代方案,这对我来说似乎不是一个好方法,因为我每次都在遍历整个数组。