首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openwhisk和javascript问题

Openwhisk和javascript问题
EN

Stack Overflow用户
提问于 2018-02-04 20:20:00
回答 2查看 59关注 0票数 1

我想做一些非常简单的事情。我想通过openwhisk和javascript找到一个JSON对象的所有元素的总和。然而,下面的代码给出的结果是0。

代码语言:javascript
复制
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},有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-04 20:24:06

{0: 2, 1: 56, 2: 99, 3:12}这是对象,因此params.length无效。

尝试数组输入:

代码语言:javascript
复制
[2, 56, 99, 12]

否则,循环遍历对象:

代码语言:javascript
复制
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}
}
票数 2
EN

Stack Overflow用户

发布于 2018-02-04 20:40:29

与其说是一个OpenWhisk问题,不如说是一个JavaScript问题,但你可以这样做:

代码语言: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)将数组的所有值聚合为单个值

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48607977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档