我正尝试从下面的对象返回前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样式的样式来解决问题。
答案 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));