遍历对象数组,检查匹配的参数并将匹配的对象添加到新数组

时间:2018-07-22 04:31:43

标签: javascript arrays reactjs lodash

我是JS和React的新手,但在这里有些卡住了。我已经搜索了SO,但是在找到有效的解释解决方案时遇到了麻烦。

这是我的数组。

第一个数组非常简单。

[1, 3, 4,]

第二个看起来像这样。

[
  {
    id: 1,
    title: Title 1,
   },
  {
    id: 2,
    title: Title 2,
   },
]

我想做的是搜索第二个数组,如果我可以找到与第一个数组中的值匹配的id,则将第二个数组中的对象添加到第三个新数组中。

我已经尝试了很多方法,并且我确定有一个相对简单的方法可以使用forEach循环或lodash来完成此操作,但是我将变得空白。

任何帮助和解释将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:4)

您的第二个数组无效。您必须用引号将字符串值引起来。

您可以使用Array.prototype.filter()

  

filter()方法创建一个新数组,该数组包含所有通过提供的功能实现的测试的元素。

Array.prototype.includes()

  

includes()方法确定数组是否包含某个元素,并在适当时返回true或false。

尝试以下方式:

var arr1 = [1, 3, 4,];

var arr2 = [
  {
    id: 1,
    title: 'Title 1',
   },
  {
    id: 2,
    title: 'Title 2',
   },
];

var res = arr2.filter(i => arr1.includes(i.id));

console.log(res);