Javascript减少嵌套数组
Javascript reduce with a nested array
我试图用减少方法求和嵌套数组。我的数据数组看起来像这样:
var data = [
[1389740400000, 576],
[1389741300000, 608],
[1389742200000, 624],
[1389743100000, 672],
[1389744000000, 691]
];
I got this:
// es5
data.reduce(function(prev, next) { return prev + next[1]; })
// es6 syntax
data.reduce((prev, next) => prev + next[1])
然而,我只需要每个(嵌套)数组中的第二个值。有什么建议吗?我正在尝试对数组中的所有值求和。
//编辑:谢谢你的回答。问题是,我漏掉了末尾的initialValue。
// es6 solution
data.reduce((prev, next) => prev + next[1], 0)
按如下操作
var result = data.reduce(function (prev,next) {
return prev + next[1];
},0);
console.log(result);//prints 3171
这里我将0
初始发送为prev
。所以它会像这样
First Time prev->0 next->[1389740400000, 576]
Second Time prev->576 next->[1389740400000, 608]
做一个console.log(prev,next)
来更好地理解。
如果你在文档中看到,你会得到它
适用于所有数组的通用方法,即使它们是不规则样式的。
使用:array.reduce(sum, 0)
function sum(r, a) {
return Array.isArray(a) ? a.reduce(sum, r) : r + a;
}
console.log([
[1389740400000, 576],
[1389741300000, 608],
[1389742200000, 624],
[1389743100000, 672],
[1389744000000, 691]
].reduce(sum, 0));
console.log([
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12, [13, 14, 15, 16]]
].reduce(sum, 0));
如果data
是一个整数数组,那么您所写的内容将有效。在您的示例中,data
是一个数组的数组。因此,return语句应该对数组的元素进行操作:
return [previousValue[0] + currentValue[0], previousValue[1] + currentValue[1]];
相关文章:
- 从多维嵌套json数组创建下拉列表
- 如何通过json对象数组为嵌套对象赋值
- 为循环嵌套的Javascript未按预期返回数组
- 具有嵌套对象数组的 Javascript 对象的递归搜索函数
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- MongoDB嵌套对象数组后查询
- 从对象数组中动态创建嵌套json
- 使用Angular.js解析JSON中的嵌套对象数组
- 如何将id数组与带下划线的对象数组嵌套属性进行比较
- 将JS对象数组转换为嵌套形式的最有效方法
- 在javascript/angular中创建播放列表(按值复制数组,但按引用设置嵌套对象)
- 嵌套在 ng 重复中的拼接数组
- JavaScript格式的对象数组嵌套到子对象中
- JSON 将对象数组嵌套到表
- 如何获取数组嵌套对象子对象的父对象| MeteorJs-Astronomy
- 从数组嵌套JSON
- 使用AngularJS的JSON对象在数组嵌套在一个数组中,我怎么能得到数据到html
- 深入研究JavaScript中的一组嵌套对象
- 如何获得数组嵌套在对象的总和
- 将数组嵌套到主干模型中