以下のような2つの配列があります
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
空の配列の場合
[{},{},{},{},{},{}]
これがフィドルです。これに代わるものはありますが、毎回配列全体を反復処理しているため、これは良い方法ではないようです。