根据数组中的对象键返回对象的子数组

时间:2019-05-03 07:45:53

标签: javascript arrays object ecmascript-6

给出以下数据结构:

let assets = [{
  "photos": [{
    "id": 1,
    "label": "bad-syn.jpg",
    "size": 38284
  }]
}, {
  "documents": [{
    "id": 109
  }]
}]

]

如何基于photos键检索子数组?可能还有其他按键。

我的函数只是返回整个结构:

findAssets: function (key) {
  return this.assets.find((asset) => {
    return asset[key]
  })
}

2 个答案:

答案 0 :(得分:2)

如果您想返回photos子项array,或者换句话说,仅返回给定key的值,则只想从使用key的{​​{1}}结果:

.find()

演示:

[key]

注意:

这假定给定的findAssets = function(key){ return assets.find((asset) => { return asset[key] })[key] } 存在于您的let assets = [{ "photos": [{ "id": 1, "label": "bad-syn.jpg", "size": 38284 }] }] findAssets = function(key){ return assets.find((asset) => { return asset[key] })[key] } console.log(findAssets("photos"));对象中,否则可能会引发错误。

答案 1 :(得分:0)

您想使用['thyme', 'youthy', 'youthem'],并且由于.map()也是一个数组,因此您需要映射两次。

photos