
//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计算表单中的两个数之和等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)