遍历对象数组中第n个索引

时间:2020-01-13 16:31:57

标签: javascript

我正尝试从下面的对象返回前4 个网格值的总和(预期输出 5

[
  {
    "id": 1,
    "grid": 1
  },
  {
    "id": 2,
    "grid": 2
  },
  {
    "id": 3,
    "grid": 1
  },
  {
    "id": 4,
    "grid": 1
  },
  {
    "id": 5,
    "grid": 1
  }
]



data.map(item => {
   console.log(item.grid);
});

.map相对较新,我通常会使用forwhile迭代器,但想知道是否有人可以建议使用更多es6样式的样式来解决问题。

2 个答案:

答案 0 :(得分:2)

您可以使用.slice()将数组切成所需的元素,然后使用.reduce()进行总结;通过Destructuring获得grid

const data = [
  {"id": 1, "grid": 1},
  {"id": 2, "grid": 2},
  {"id": 3, "grid": 1},
  {"id": 4, "grid": 1},
  {"id": 5, "grid": 1}
];

const result = data.slice(0, 4).reduce((a, {grid}, i) => {
  return a += Number(grid);
}, 0);

console.log(result)

答案 1 :(得分:1)

使用slice从数组中获取前4个对象,然后使用reduce求和grid

const input = [{
    "id": 1,
    "grid": 1
  },
  {
    "id": 2,
    "grid": 2
  },
  {
    "id": 3,
    "grid": 1
  },
  {
    "id": 4,
    "grid": 1
  },
  {
    "id": 5,
    "grid": 1
  }
];

console.log(input.slice(0, 4).reduce((a, {
  grid
}) => a + grid, 0));