阅读 48

JavaScript-对象数组里根据id获取name,对象可能有children属性

let array = [
  {
    id: 1,
    name: "001",
    children: [
      {
        id: 2,
        name: "002",
      },
    ],
  },
  { id: 3, name: "003", children: [] },
];

function getFlatArr(arr) {
  return arr.reduce((a, item) => {
    let flatArr = [...a, item];
    if (item.children) {
      flatArr = [...flatArr, ...getFlatArr(item.children)];
    }
    return flatArr;
  }, []);
}
console.log(getFlatArr(array));

function getNameByIdFromArr(arr, id) {
  return getFlatArr(arr).find((item) => item.id === id).name;
}
console.log(getNameByIdFromArr(array, 2));

 

原文:https://www.cnblogs.com/starlog/p/15356396.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐