所以我有一个作业,我必须写一个名为&#34的函数; addEmUp"这样声明:
function addEmUp() {
// Your code goes here.
};
addEmUp返回数组中的数字总和。数组的名称是LASVEGAS,数组中有3个值。
数组LASVEGAS存在 - 不创建它 - 只需使用它。
我很无能,我该怎么写这个函数?
由于
答案 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;
}
下次不要发布这些类型的问题。我们不是来做你的家庭工作。