JavaScript如何计算变量类型和数组的返回和
因此,我试图编写一个函数来计算数组,只输出数组中所有数字变量的和。例如,如果我输入数组[1,2,3,“chunky bacon”,5,false],它将只加1,2,3和5,因此返回11。 以下是我写的:JavaScript如何计算变量类型和数组的返回和,javascript,arrays,sum,typeof,Javascript,Arrays,Sum,Typeof,因此,我试图编写一个函数来计算数组,只输出数组中所有数字变量的和。例如,如果我输入数组[1,2,3,“chunky bacon”,5,false],它将只加1,2,3和5,因此返回11。 以下是我写的: var sum = function(num) { var total = 0; for (var i = 0; i < num.length; i++) { if (typeof i == "number") { total +=
var sum = function(num) {
var total = 0;
for (var i = 0; i < num.length; i++) {
if (typeof i == "number") {
total += num[i];
};
};
console.log(total);
}
var sum=函数(num){
var合计=0;
对于(变量i=0;i
然而,当我在控制台中用[1,2,3,“chunky bacon”,5,false]测试它时,它会返回
6粗巴康5假
所以我的问题是
1) 当循环运行到一个无编号的元素时,如何使循环不停止,因此在上面的示例中,它将继续添加6和5?
2) 我如何让它停止打印无编号元素?我不知道为什么它会打印出来,因为我只说了console.log(总计)
谢谢你的帮助 (typeof i==“number”)始终是一个数字,因为“i”是循环计数器。你应该使用
if (typeof num[i] == "number")
(代码段未测试)您可以通过对照数组值检查isNaN来解决此问题
var array = [1, 2, 3, "chunky bacon", 5, false];
var sum = function(arr) {
var a = 0;
var b = arr.length;
for ( c = 0; c < b; c++ ) {
if ( !isNaN(arr[c]) ) {
a += arr[c];
}
}
return a;
}
console.log(sum(array));
vararray=[1,2,3,“chunky bacon”,5,false];
var总和=函数(arr){
var a=0;
var b=阵列长度;
对于(C=0;C< b;C++){
如果(!isNaN(arr[c])){
a+=arr[c];
}
}
返回a;
}
log(总和(数组));
这里有一个工作示例:myArray.filter(Number).reduce(sum)@dandavis:如果JavaScript有一个
sum
global。我猜.reduce(函数(a,b){returna+b},0)
也能工作。我想你的意思是如果(typeof num[I]=“number”){
。在循环中,I
(递增的索引)将始终是一个数字。你似乎想检查数组中的值,即num[I]
是的,我每天晚上都为Math.sum和Math.diff祈祷,这样我们就可以在数组上快速进行本机数学运算。