-8

所以我有一个任务,我必须编写一个名为“addEmUp”的函数,以这种方式声明:

function addEmUp() {

     // Your code goes here.

};

addEmUp 返回数组中数字的总和。数组的名称是 LASVEGAS,数组中有 3 个值。

数组 LASVEGAS 存在 - 不要创建它 - 只需使用它。

我一头雾水,这个函数怎么写?

谢谢

4

3 回答 3

5

尝试:

var sum = LASVEGAS.reduce(function(a,b){return a+b;});

现在去看看自己如何在你的函数中实现它。

于 2012-10-15T04:37:55.690 回答
1

使用 for 循环并遍历数组中的每个项目。

您可能希望使用变量来跟踪运行总计。

于 2012-10-15T04:38:29.307 回答
0

我写这个答案是因为我只是想理解一些事情。我不做你的作业,那是你应该做的。

现在,LASVEGAS 是一个包含 3 个值的数组。不要坚持 3 个值,我可以是任何长度。

让我们假设一个通用数组示例

 LASVEGAS = [1,5,"a","b", true, false, , 34];

接下来,您的要求是提取数组中存在的数字长度。您必须使用filter函数过滤数组。但这在旧浏览器中不起作用。如果您只针对现代浏览器,那么下面的代码应该可以工作

 LASVEGAS.filter(function(e) { return typeof e == "Number"; } )    
 // It will return filtered array of Numbers

因此,如果您还针对旧浏览器,请在页面中的某处添加以下代码。

 /**
  * Copyright (c) Mozilla Foundation http://www.mozilla.org/
  * This code is available under the terms of the MIT License
 */
 if (!Array.prototype.filter) {
 Array.prototype.filter = function(fun /*, thisp*/) {
    var len = this.length >>> 0;
    if (typeof fun != "function") {
        throw new TypeError();
    }

    var res = [];
    var thisp = arguments[1];
    for (var i = 0; i < len; i++) {
        if (i in this) {
            var val = this[i]; // in case fun mutates this
            if (fun.call(thisp, val, i, this)) {
                res.push(val);
            }
        }
    }

    return res;
  };
 }

如果你想在确切的要求上工作,并且如果不需要任何通用方式下面的代码也可以完成工作

 LASVEGAS.Numbers = 0;
 for(var i = 0, j = LASVEGAS.length; i < j ; i++){
    if(typeof LASVEGAS[i] == "Number") LASVEGAS.Numbers;  
 }

下一次,不要发布这些类型的问题。我们不是来做你的家庭作业的。

于 2012-10-15T05:03:24.923 回答