发布网友 发布时间:2022-04-24 02:53
共4个回答
热心网友 时间:2022-04-22 14:58
//for循环,for in方法既可以遍历数组又可以遍历对象的可遍历属性
var obj=[{a:1},{a:1},{a:1,b:[{c:1},{c:2},{c:3}]}];
var obj2=[{a:1},{a:1},{a:1},{b:[{c:1},{c:2},{c:3}]}];
var sum=0;
var sumArr = function(arr){
for(var i in arr){
if(typeof(arr[i])=='number'){
sum += arr[i];
}else{
sumArr(arr[i])
}
}
}
sumArr(obj2);
console.log(sum);
//如果你理解闭包,上面的代码还可以优化成:
var sumArr = function(){
var sum=0;
var countSum = function(arr){
for(var i in arr){
if(typeof(arr[i])=='number'){
sum += arr[i];
}else{
countSum(arr[i])
}
}
return sum;
}
return countSum;
}();
console.log(sumArr(obj));
//下面的方法虽然不是for循环,但是很简单暴力
//水平有限,正则可能不是很优雅
function getSum(arr){
var sum=0;
var str=JSON.stringify(arr); //JSON字符串格式
//提取出':'后面的数字
var strArr=str.match(/:\d/g).map(function(val){
return val.slice(1);
});
//求和
strArr.forEach(function(val){
sum += parseFloat(val);
});
return sum;
}
热心网友 时间:2022-04-22 16:16
你可以在java代码中定义一个一维数组和二维数组,然后分别用for循环输出这两个数组就行了。
网上都有例子的,很方便能找到。
热心网友 时间:2022-04-22 17:51
声明一个变量count.在遍历里想加
热心网友 时间:2022-04-22 19:42
var n = 0
for(var i=0; i < array.length; i++)
n += array[i]