【问题标题】:Loop through array of objects, check for a matching parameter and add the matching object to new array遍历对象数组,检查匹配的参数并将匹配的对象添加到新数组
【发布时间】:2018-07-22 04:31:43
【问题描述】:

我是 JS 和 React 的新手,我有点卡在这里。我已经通过 SO 进行了搜索,但我无法找到解释有效的解决方案。

这是我的数组。

第一个数组非常简单。

[1, 3, 4,]

第二个看起来像这样。

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

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

我已经尝试了很多方法,我确信有一个相对简单的方法可以使用 forEach 循环或 lodash 来做到这一点,但我还是空白。

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

谢谢,

【问题讨论】:

  • I've tried a number of things 请发布您尝试过的内容。

标签: javascript arrays reactjs lodash


【解决方案1】:

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

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

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

和Array.prototype.includes()

includes() 方法判断数组是否包含某个元素,根据需要返回真或假。

试试下面的方法:

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

【讨论】:

  • 完美!感谢您继续我的教育!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 2021-11-07
  • 2013-09-16
相关资源
最近更新 更多