首页 > 解决方案 > ReactJS/JavaScript 在对象中查找数组

问题描述

我有一个字符串value和一个对象obj,想转换valuearray然后obj按值找到它,然后得到name但它返回undefined,我错过了什么?

let value = '3,4';
let obj = {
  "DistrictData": [{
    "id": 3,
    "name": 'blah'
  }, {
    "id": 4,
    "name": 'oops'
  }]
}

let res = value.split(',').map((v, i) => obj.DistrictData.find(o => o.id === v))
console.log(res)

标签: javascriptreactjsecmascript-6

解决方案


您需要找到一个数字值,因为 split 返回一个字符串数组。然后也映射名称。

let value = '3,4',
    obj = { DistrictData: [{ id: 3, name: 'blah' }, { id: 4, name: 'oops' }] },
    res = value
        .split(',')
        .map((v, i) => obj.DistrictData.find(o => o.id === +v))
        .map(o => o.name);

console.log(res);


推荐阅读