首页 > 解决方案 > 如何遍历具有特定条件的对象并返回其值的数组?

问题描述

我有一个包含所有项目 ID 的数组:

const allIds = ['a1gb', 'f4qa', 'i9w9']

我还有一个对象,它的属性以这些 id 作为键:

const byId = {
  a1gb: {
    whatever1
  },
  anyOtherIdThatIDontNeed: {
    whatever444
  },
  f4qa: {
    whatever2
  },
  i9w9: {
    whatever3
  }
}

返回一个看起来像的数组的最常见方法是什么

[ { whatever1 }, { whatever2 }, { whatever3 } ]

并在我的最终数组中跳过我不想要的 ID?

这是带有 id 的数组的日志:

带有 id 的数组

这是对象的日志,我需要从中返回一个数组,其中的键值来自该 id 数组,跳过了我不需要的数组:

带钥匙的对象

PS问题是,在map函数的返回数组中,当它遇到“anyOtherIdThatIDontNeed:”时,我得到了未定义。

不明确的

PPS [ ANSWER ] - Id 数组的 id 与对象的键不匹配,这就是我得到未定义的原因。

标签: javascriptreactjs

解决方案


var result = allids.map(val => ({byId[val]}))

我建议这样,如果数组也有不需要的 id,请尝试以下代码。

var result = allids.map(val => ({byId[val]})).filter(val => val?true:false)


推荐阅读