在Javascript中使用数组

时间:2012-10-15 04:31:24

标签: javascript

所以我有一个作业,我必须写一个名为&#34的函数; addEmUp"这样声明:

function addEmUp() {

     // Your code goes here.

};

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

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

我很无能,我该怎么写这个函数?

由于

3 个答案:

答案 0 :(得分:5)

尝试:

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

现在去了解一下如何在你的函数中实现它。

答案 1 :(得分:1)

使用for循环并迭代数组中的每个项目。

您可能希望使用变量来跟踪正在运行的总数。

答案 2 :(得分: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;  
 }

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