javascript - 如何循环遍历具有特定条件的对象并返回其值的数组?

标签 javascript reactjs

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

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

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

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

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

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

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

这是带有 ids 的数组日志:

array with ids

这是一个对象的日志,我需要从中返回一个数组,其中包含该 ids 数组中的键值,跳过我不需要的值:

object with keyes

附注问题是,在映射函数的返回数组中,当遇到“anyOtherIdThatIDontNeed:”时,我会得到未定义的结果。

undefined

P.P.S.[答案] - Id 数组的 id 与对象的键不匹配,这就是我未定义的原因。

最佳答案

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

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

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

关于javascript - 如何循环遍历具有特定条件的对象并返回其值的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59120115/

相关文章:

javascript - 寻找下一张图片

javascript - 如何定位通过 axios.get 请求发出的数组中的元素?

javascript - 库中的 React Router 问题 - 使用 <Router> 之外的元素

reactjs - 动态组合reactjs

javascript - 使用功能组件传递 props,而不在组件内声明功能

javascript - JavaScript 中的全局变量是什么?

JavaScript localStorage 在第一次点击时不起作用

javascript - Facebook javascript 登录窗口

javascript - 给setState中的属性加上括号[]

javascript - react native : How to switch page without using NavigatorIOS component?