首页 > 解决方案 > 如何获取随机定位的对象的属性值

问题描述

res = {
  A: { device001: 1, device002: 2 },
  B: { device003: 3, device004: 4 }
};

对于上面的 Javascript 中的对象,我需要获取 device001 的值,但是 device001 是存在的,但是 device001 的位置是未知的,例如:

res = {
  A: { device004: 4, device002: 2 },
  B: { device003: 3, device001: 1 }
};

请告诉我如何获得该值,谢谢。

标签: javascriptarraysobject

解决方案


您可以使用获取对象的值,Object.values()然后使用.find()它返回第一个值对象,该对象具有"device001"您可以使用该.hasOwnProperty()方法检查的键。然后,您可以使用可选链接从对象中获取结果(如果找到):

const obj = {
  A: { device001: 1, device002: 2 },
  B: { device003: 3, device004: 4 }
};

const search = "device001";
const result = Object.values(obj).find(obj => obj.hasOwnProperty(search))?.[search];
console.log(result);

如果您还不能支持可选链接,那么您可以.find()在尝试从中获取值之前先检查 using 结果的真实性:

const obj = {
  A: { device001: 1, device002: 2 },
  B: { device003: 3, device004: 4 }
};

const search = "device001";
const found = Object.values(obj).find(obj => obj.hasOwnProperty(search));
const result = found && found[search];
console.log(result);


推荐阅读