Openwhisk 和 javascript 问题
Openwhisk and javascript issue
我想做一些非常简单的事情。我想通过 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}
有什么建议吗?
{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}
}
与其说是 OpenWhisk 问题,不如说是 JavaScript,但你可以:
function sum(params) {
return Object.values(params).reduce((acc, cur) => acc + cur);
}
function main(params) {
return {payload: sum(params)};
}
Object.values(obj)
returns an array of all values in the object. reduce
使用聚合函数将数组的所有值聚合为一个值(在本例中为 acc + cur
)
我想做一些非常简单的事情。我想通过 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}
有什么建议吗?
{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}
}
与其说是 OpenWhisk 问题,不如说是 JavaScript,但你可以:
function sum(params) {
return Object.values(params).reduce((acc, cur) => acc + cur);
}
function main(params) {
return {payload: sum(params)};
}
Object.values(obj)
returns an array of all values in the object. reduce
使用聚合函数将数组的所有值聚合为一个值(在本例中为 acc + cur
)