在我的应用程序中的click事件中,我返回highlights
- 一系列功能(每次都有不同的长度)。所以console.log(highlights)
会产生:
我的目标是返回对象中每个要素的properties.census2010_Pop2010
中包含的值的总和。到目前为止,我已经尝试了下面的代码,但控制台中没有返回任何内容。任何建议,将不胜感激。
total = Object.create(null);
highlights.feature.properties.forEach(function (a) {
a.census2010_Pop2010.forEach(function (b) {
total = total + b.census2010_Pop2010;
});
});
console.log(total);
答案 0 :(得分:6)
highlights
是一个数组,你应该循环遍历它。
var highlights = [
{properties : { census2010_Pop2010: 10}},
{properties : { census2010_Pop2010: 20}},
{properties : { census2010_Pop2010: 30}}
]
var total = highlights.reduce( function(tot, record) {
return tot + record.properties.census2010_Pop2010;
},0);
console.log(total);

如果您想使用forEach,它将是这样的:
var highlights = [
{properties : { census2010_Pop2010: 10}},
{properties : { census2010_Pop2010: 20}},
{properties : { census2010_Pop2010: 30}}
]
var total = 0;
highlights.forEach( function(record) {
total += record.properties.census2010_Pop2010;
});
console.log(total);

答案 1 :(得分:2)
total = 0;
highlights.forEach(function(a) {
total += Number(a.Feature.properties.census2010_Pop2010);
})
console.log(total);
你需要遍历每个"功能" "中的对象突出显示"阵列。首先从总计0开始,然后逐步添加每个要素的census2010_Pop2010值。
答案 2 :(得分:1)
这可以通过使用reduce
总计census2010_Pop2010
:
const total = highlights.reduce((acc, val) => acc + val.properties.census2010_Pop2010, 0);
注意:我使用了ES6 arrow function
为了保持简洁,这不是必要的,但在使用map
,filter
和reduce
等方法采用更具功能性的风格时变得越来越常见。