首页 > 解决方案 > 计算嵌套对象数组中的键

问题描述

有一个长度为 4 的数组。这个长度总是动态的。“出席”是这个对象数组的键之一。这个“出席”也是一个对象数组。

现在我的查询是:当'Make'值为'1'时,如何从'attendance'数组中计算(总)'Make'键。

数组结构图在这里: https://i.stack.imgur.com/oVFQj.png

请帮帮我。

提前致谢。

标签: reactjs

解决方案


给定数据:

[
  {
    attendance: [
      { Make: "1", Model: "0", Year: "0", Present: "present" },
      { Make: "2", Model: "1", Year: "1", Absent: "absent" }
    ],
    "course-name": "OS",
    id: 61
  },
  {
    attendance: [
      { Make: "1", Model: "0", Year: "0", Absent: "absent" },
      { Make: "2", Model: "1", Year: "1", Present: "present" }
    ],
    "course-name": "OS",
    id: 62
  },
  {
    attendance: [
      { Make: "1", Model: "0", Year: "0" },
      { Make: "2", Model: "1", Year: "1" }
    ],
    "course-name": "",
    id: 63
  },
  {
    attendance: [
      { Make: "1", Model: "0", Year: "0" },
      { Make: "2", Model: "1", Year: "1" }
    ],
    "course-name": "",
    id: 64
  }
];

您可以将数组减少为总数,检查每个元素的attendance数组是否包含一些Make属性等于 的元素"1"

data.reduce(
  (total, current) => total + current.attendance.some((el) => el.Make === "1"),
  0
);

const data = [
  {
    attendance: [
      { Make: "1", Model: "0", Year: "0", Present: "present" },
      { Make: "2", Model: "1", Year: "1", Absent: "absent" }
    ],
    "course-name": "OS",
    id: 61
  },
  {
    attendance: [
      { Make: "1", Model: "0", Year: "0", Absent: "absent" },
      { Make: "2", Model: "1", Year: "1", Present: "present" }
    ],
    "course-name": "OS",
    id: 62
  },
  {
    attendance: [
      { Make: "1", Model: "0", Year: "0" },
      { Make: "2", Model: "1", Year: "1" }
    ],
    "course-name": "",
    id: 63
  },
  {
    attendance: [
      { Make: "1", Model: "0", Year: "0" },
      { Make: "2", Model: "1", Year: "1" }
    ],
    "course-name": "",
    id: 64
  }
];

const make1Count = data.reduce(
  (total, current) => total + current.attendance.some((el) => el.Make === "1"),
  0
);

console.log(make1Count);


推荐阅读