javascript - 从多个对象获取属性(如果存在)

标签 javascript object

我有一个像这样的对象:

var obj = {
    107: {name: "test", id: 772},
    124: {name: "hello", id: 123},
    120: {id: 213}
}

如何从 obj 检索 name 数组,例如输出应为:["test", "hello"]

我该如何去做呢?

最佳答案

您可以使用函数reduceObject.values和函数includes来避免重复值。

var obj = {
    '107': {name: "test", id: 772},
    '124': {name: "hello", id: 123},
    '125': {name: "hello", id: 1233},
    '120': {id: 213}
}

var result = Object.values(obj).reduce((a, {name}) => {
  if (name && !a.includes(name)) a.push(name);
  return a;
}, []);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

为了避免重复值,您也可以使用对象Set:

var obj = {
    '107': {name: "test", id: 772},
    '124': {name: "hello", id: 123},
    '125': {name: "hello", id: 1233},
    '120': {id: 213}
}

var result = Array.from(Object.values(obj).reduce((a, {name}) => {
  if (name) a.add(name);
  return a;
}, new Set()).values());

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 从多个对象获取属性(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49342404/

相关文章:

javascript - fontawesome 如何与 React 一起工作?

javascript - 启用依赖于另一个表单字段值的表单字段?

c# - 在 C# 中使用冒泡排序对整数进行排序,但想要移动整个对象

javascript - 如何在 Twitter API 响应中检索 [object Object] 值

Javascript 闭包不断返回一个函数,但应该是一个字符串

javascript - 算法:从数组中获取当前日期的最后一个和下一个事件(javascript/Angular)

JavaScript - 是否可以在单独的页面中从 div 获取高度?

javascript - 确保嵌套成员的接口(interface)类型

javascript - 12月计算周末Js函数中的问题

class - VBA引用容器对象-语法和面向对象的方法