按值传递
按值传递:两个变量间赋值时,只是将变量中的值复制一个副本给对方;数组间赋值的是地址
// 按值传递:两变量间赋值时,只是将原变量中的值复制一个副本给对方
var a=3;
var b=a;
b*=2;
console.log(a);//3
console.log(b);//6
// 数组间赋值时,给的是地址,所以两个数组名指的是同一个数组
var arr1=["包","包","包","包","包"];
var arr2=arr1;
arr2.length-=1;
console.log(arr1);//4个
console.log(arr2);//4个
汇总(reduce)
对数组中每个元素的值进行统计,得出一个汇总的结果
笔试题:统计一个字符串中出现最多的字和次数
var result=arr.reduce(
function(prev,elem,i,arr){
return perv+elem
},
base //起始的基数
)
// 统计一个字符串中出现最多的字和次数
var str="helloworld";
// 将字符串改成数组,用空字符连接
var result=str.split("").reduce(
function(prev,elem){
// 如果prev中没有以当前字母为下标的元素
if(prev[elem]===undefined){
prev[elem]=1;
}else{//否则(说明碰到过相同的字母)
prev[elem]+=1;//就仅数量+1
}
return prev;//最后都要将修改后的捐款箱返回给reduce函数,供下一轮使用
},
{} //base
)
console.log(result);