猿问

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

给定此数据结构:


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]

  })

}


呼如林
浏览 158回答 2
2回答

开心每一天1111

如果要返回photossubarray或换句话说仅返回给定值,则key只想使用以下方法key从.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"));笔记:假设给定对象key存在于您的assets对象中,否则可能引发错误。

青春有我

您要使用.map()并且由于photos也是数组,因此您需要映射两次。let assets = [{  "photos": [{    "id": 1,    "label": "bad-syn.jpg",    "size": 38284  }]}]function byKey(k) {  return assets.map(a => a.photos.map(p => p[k]));}console.log(byKey('label'));
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答