【问题标题】:Get values from array of objects, inside an object [duplicate]从对象数组中获取值[重复]
【发布时间】:2021-11-17 07:32:51
【问题描述】:

所以,假设我有这个对象,在它里面,我有一个对象数组。

let partys = {
    "id": 241,
    "name": "Rock Party",
    "type": "party",
    "days": [
        {
            "id": 201,
            "day": "Monday"
        },
        {
            "id": 202,
            "dia": "Friday"
        }
    ],
}

如何仅获取“day”的值?像这样:

let days = ["Monday", "Friday"]

我已经用过Object.values(party.days[0]),但是结果是:

[201, 'Monday']

【问题讨论】:

标签: javascript arrays json angularjs object


【解决方案1】:

您可以使用Nullish coalescing operator (??)轻松实现结果

partys.days.map((x) => x.dia ?? x.day);

let partys = {
  id: 241,
  name: "Rock Party",
  type: "party",
  days: [
    {
      id: 201,
      day: "Monday",
    },
    {
      id: 202,
      dia: "Friday",
    },
  ],
};

let days = partys.days.map((x) => x.dia ?? x.day);
console.log(days);

【讨论】:

  • 这也行得通!谢谢!
【解决方案2】:

假设dia 是一个错字:

const days = [];
for (let p of partys.days) {
  days.push(p.day);
}
console.log(days)

【讨论】:

    【解决方案3】:

    let partys = {
        "id": 241,
        "name": "Rock Party",
        "type": "party",
        "days": [
            {
                "id": 201,
                "day": "Monday"
            },
            {
                "id": 202,
                "dia": "Friday"
            }
        ],
    };
    
    let days = partys.days.map(x => x.dia || x.day);
    console.log(days);

    这是适用于您的数据的代码。但我真的很确定该属性的名称应该是day 或dia,而不是同时使用。

    【讨论】:

    • 如果有对象{ id: 202, dia: 0 }。那么这将不起作用
    • 抱歉,我忘了把“dia”这个词翻译成英文。两者都应该是“天”。
    • 但效果很好!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 2019-06-28
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 2012-12-07
    相关资源
    最近更新 更多