从另一个数组中过滤对象数组

时间:2017-10-26 09:47:13

标签: javascript arrays lodash

我有两个数组。我想过滤一个包含另一个数组中对象的数组。

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];

谢谢

1 个答案:

答案 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)