首页 > 解决方案 > 在 Object of objects JS 中搜索和查找(不在对象数组中)

问题描述

大家好,我正在搜索如何在一个大对象中搜索,所有结果都是一些只有孩子而不是孙子的小对象

我的问题是

let obj = {
  child1: {
    name: 'Nairi',
    age: 19
  },
  child2: {
    name: 'Zara',
    age: 19
  },
  child3: {
    name: 'Tyom',
    age: 20
  }
}

如果我正在寻找 Tyom 和 child1,我想获得整个孩子 3,如果我想要获得 Nairi,这样我就可以访问其他密钥,比如他们的年龄等......

标签: javascript

解决方案


您可以使用Object.values()从对象中获取所有值的数组,然后.find()在这些值上使用以查找具有name等于您的搜索属性的子对象:

let obj = { child1: { name: 'Nairi', age: 19 }, child2: { name: 'Zara', age: 19 }, child3: { name: 'Tyom', age: 20 } }

const search = "Tyom";
const res = Object.values(obj).find(child => child.name === search);
console.log(res);

但是,您的外部对象似乎更适合array,因为您似乎正在存储一个子列表,在这种情况下不需要Object.values()并且可以使用来完成.find()

let children = [{ name: 'Nairi', age: 19 }, { name: 'Zara', age: 19 }, { name: 'Tyom', age: 20 }];

const search = "Tyom";
const res = children.find(child => child.name === search);
console.log(res);


推荐阅读