JS数组方法总结

数组常用的方法:

    concat();//连接2个或更多数组,并返回结果
    every();//对数组中的每一项运行给定函数,如果该函数对每一项都返回 true ,则返回 true
    filter();//对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组
    forEach();//对数组中的每一项运行给定函数。这个方法没有返回值
    join();//将所有的数组元素连接成一个字符串
    indexOf();//返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1
    lastIndexOf();//返回在数组中搜索到的与给定参数相等的元素的索引里最大的值(倒序)
    map();//对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
    reverse();//颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在的第一个
    slice();//传入索引值,将数组里对应索引范围内的元素作为新数组返回
    some();//对数组中的每一项运行给定函数,如果任一项返回 true ,则返回 true
    sort();//按照字母顺序对数组排序,支持传入指定排序方法的函数作为参数
    toString();//将数组作为字符串返回
    valueOf();//和 toString 类似,将数组作为字符串返回
数组合并
    // 数组合并
    var zero = 0;
    var positiveNumbers = [1,2,3];
    var negativeNumbers = [-3,-2,-1];
    var numbers = negativeNumbers.concat(zero, positiveNumbers);
    //[-3,-2,-1,0,1,2,3]
迭代器函数
   // 迭代器函数
    function isEven (x) {
        return (x % 2 == 0) ? true : false;
    }
    var numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];

    numbers.every(isEven);// every 方法会迭代数组中的每个元素,直到返回 false 。         false

    numbers.some(isEven);//  some 方法会迭代数组的每个元素,直到函数返回 true 。         true

    numbers.forEach(isEven);// 它和使用 for 循环的结果相同                               没有返回值

    numbers.map(isEven);// 以数组形式返回每个元素的运行结果         [false, true, false, true, false, true, false, true,false, true, false, true, false, true, false]

    numbers.filter(isEven);// 以数组形式返回满足条件的元素           [2, 4, 6, 8, 10, 12, 14]

    reduce();//累加器
    原理:
    [x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4);

    numbers.reduce(function(previous, current, index){
        return previous + current;
    });//120

eg:把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:[‘adam’, ‘LISA’, ‘barT’],输出:[‘Adam’, ‘Lisa’, ‘Bart’]。

function normalize(arr){
           if(!arr){
               alert('the arr is empty!');
               return;
            }
            return arr.map(function(s){
              var temparr = [];
              for(var j=0; j<s.length; j++){
                   var str = s.substr(j, 1);//取一个字符
                   if(j===0){
                      str = str.toUpperCase();// 大写
                   }else{
                      str = str.toLowerCase();// 小写
                   }
                   temparr.push(str);// 此时仍为一个数组
              }
              s = temparr.reduce(function(x, y){//数组改为字符串,也可以用 temparr.join("");
                   return x + y;
              });
              return temparr;
            });

        }
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值