javascript的问题,如何用for循环求数组的和

javascript的问题,如何用for循环求数组的和,第1张

//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);

consolelog(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;

}();

consolelog(sumArr(obj));

//下面的方法虽然不是for循环,但是很简单暴力

//水平有限,正则可能不是很优雅

function getSum(arr){

    var sum=0;

    var str=JSONstringify(arr);                //JSON字符串格式

    

    //提取出':'后面的数字

    var strArr=strmatch(/:\d/g)map(function(val){

        return valslice(1);                    

    });

    //求和

    strArrforEach(function(val){

        sum += parseFloat(val);

    });

    return sum;

}

js获取数组中的一部分元素,有2种方法:slice和filter函数,下面分别介绍。

slice

slice的定义和用法如下,用于截取数组的一段

执行

var

arr

=

[1,2,3,4,5];

arrslice(1,4);

这2行代码,可以看到截取了1到4下标的代码

filter

filter则用于过滤数组中的一部分元素,剩下的元素就是需要的那部分元素。

现在尝试下面代码,可以将一个数字数组中的偶数过滤掉,只留下奇数。

var

arr

=

[1,2,3,4,5];

arrfilter(e=>e%2==0)

1首先多了个 “} ”;

2。可以定义个id <input type="text" name="username" id="username"/>

function相应改成:var a=documentgetElementById('username')value;

var b=documentgetElementById('username1')value;

var arr=[2,4,5,3,5,3,0];

var arrvalue;//用于存放取出的数组的值

for(var i=0;i<arrlength;i++){

arrvalue=arr[i];//数组的索引是从0开始的

consolelog(arrvalue);//把取出的值打印在控制台上

}

扩展资料:

js 获取数组中的最大值和最小值

var arr = [3,12,23,18,25,33,22,30,1]

方案一: 思想 首先对数组进行排序(小 》大),第一项为最小值,最后一项为最大值

var min;

var max;

arrsoft(function(a,b){return a-b;})

min = arr[0];

max = arr[arrlength-1];

方案二:采用Math对象里的min()方法和 max()方法,需要将比较的数一个一个的传递进来才能比较,但是可以通过以下方式转化即可;

var min = Mathmin(arr);

consolelog(min)   // NAN

consolelog(Mathmin(3,12,23,18,25,33,22,30,1))   // 1

consolelog(Mathmax(3,12,23,18,25,33,22,30,1))   // 33 

var min =eval("Mathmin(" +arrtoString()+")");  // 1     采用字符串拼接

var min = eval("Mathmax(" +arrtoString()+")");;  // 33

var min = Mathminapply(obj,arr)  // 1     利用apply方法一项一项传质的特点

var max =Mathmaxapply(obj,arr)  // 33

你的js代码全部去掉,并把下面的这一段加到你的name="total"的input标签的后面,并且去掉 onLoad="getTotal()",就解决了:

<script language="javascript">

var arr= documentpListthisTotal;

var count = "";

for(var i = 0; i <arrlength; i++)

{

count += arr[i]value;

}

documentpListtotalvalue=count;</script>

按照你的要求,求满足多个条件的相同属性的对象之和的Javascript程序如下

<script type=text/javascript>

var obj = [{source: "HTML",target: "JAVASCRIPT",value: 11},

{source: "HTML",target: "CSS",value: 22},

{source: "HTML",target: "JAVA",value: 33},

{source: "HTML",target: "JAVASCRIPT",value: 44}];

var result=[];

var flag=true;

resultpush(obj[0]);

for(var i=1;i<objlength;i++){

flag=true;

for(var j=0;j<resultlength;j++){

if(obj[i]source==result[j]source && obj[i]target==result[j]target){

flag=false;

result[j]value=obj[i]value+result[j]value;

}

}

if(flag==true)

resultpush(obj[i]);

}

documentwrite(JSONstringify(result));

</script>

源代码

这是由于你的score初始值是字符串(空字符串也是字符串)。var score = ''; 改成 var score = 0; 另外由于scoreArr中本身就是数字,不需要用parseInt转换 score += parseInt(scoreArr[i][1]);可直接改为 score += scoreArr[i][1];

var arr ={

"list":[

{"a":23},

{"a":24},

{"a":21},

{"a":27},

{"a":29}

]

};

var num=0;

for(var i=0;i<arrlistlength;i++)

{

num+=Number(arrlist[i]a)

}

consolelog(num);

以上就是关于javascript的问题,如何用for循环求数组的和全部的内容,包括:javascript的问题,如何用for循环求数组的和、JS中如何获取数组中的一部分元素、javascript计算表单中的两个数之和等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9668383.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存