我想做一些非常简单的事情。我想通过openwhisk和javascript找到一个JSON对象的所有元素的总和。然而,下面的代码给出的结果是0。
function sum(params){
var s=0;
for(var i=0; i<params.length; i++) s+=params[i];
return s;
}
function main(params){
return {payload : sum(params)};
}作为输入,例如这个{0: 2, 1: 56, 2: 99, 3:12},有什么建议吗?
发布于 2018-02-04 20:24:06
{0: 2, 1: 56, 2: 99, 3:12}这是对象,因此params.length无效。
尝试数组输入:
[2, 56, 99, 12]否则,循环遍历对象:
function sum(params){
var s=0;
for(var key in params) {
if (params.hasOwnProperty(key)) {
s += parseInt(params[key]);
}
}
return s;
}
function main(params){
return {payload : sum(params)};
// params = {0: 2, 1: 56, 2: 99, 3:12}
}发布于 2018-02-04 20:40:29
与其说是一个OpenWhisk问题,不如说是一个JavaScript问题,但你可以这样做:
function sum(params) {
return Object.values(params).reduce((acc, cur) => acc + cur);
}
function main(params) {
return {payload: sum(params)};
}Object.values(obj)返回对象中所有值的数组。reduce使用聚合函数(本例中为acc + cur)将数组的所有值聚合为单个值
https://stackoverflow.com/questions/48607977
复制相似问题