我有两个数组。我想过滤一个包含另一个数组中对象的数组。
dockerizer@docker1:~/consul$ docker run --rm -ti --network=host servery
/bin/sh: syntax error: unterminated quoted string
过滤这两个数组后,我需要过滤数组,如下所示。
let array1= [{date:1, count:4}, {date:3, count:6}];
let array2= [1,2,3,4];
因此,过滤后的数组包含匹配日期的计数和不匹配值的零。但我只获得匹配的数据。
这是我的代码:
let array= [4,0,6,0];
谢谢
答案 0 :(得分:1)
您可以使用map()
和find()
方法。您不需要filter()
,因为对于每个元素,您将返回count或0,因此您可以使用map()
。
let array1= [{date:1, count:4}, {date:3, count:6}];
let array2= [1,2,3,4];
var array = array2.map(function(e) {
var f = array1.find(a => a.date == e);
return f ? f.count : 0
});
console.log(array)