为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

呼如林 2021-05-04 17:37:01
给定此数据结构: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 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

如果要返回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对象中,否则可能引发错误。


查看完整回答
反对 回复 2021-05-20
?
青春有我

TA贡献1784条经验 获得超8个赞

您要使用.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'));


查看完整回答
反对 回复 2021-05-20
  • 2 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信