按值传递、汇总(reduce)(面试或笔试)

按值传递

按值传递:两个变量间赋值时,只是将变量中的值复制一个副本给对方;数组间赋值的是地址

 // 按值传递:两变量间赋值时,只是将原变量中的值复制一个副本给对方
  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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值