js 数组容易弄混的那些方法

js数组中 我们很多数组的方法都知道其中的含义 但是每一次用的都不是很顺手 下边我给大家写了一个小小的demo 来理解那些 近似”双胞胎“的东西

// splice方法
     var a=[1,2,3,4,5,6,7,8];
     console.log(a.splice(4))//5 6 7 8 从第四个位置开始删除  返回删除的元素 索引值为0开始 不包括第四个位置的数组元素
     console.log(a)// 1 2 3 4 新的修改完毕的数组
     console.log(a.splice(1,2)) //2 3 返回删除的元素 
     console.log(a)  //1 4
     console.log(a.splice(1,1))  // 4
     console.log(a) //1
     console.log(a.splice(1,2)) //返回空数组 因为没有找到数组元素
      console.log(a) //1  

      var b = [1,2,3,4,5];
      console.log(b.splice(2,0,'a','b')) //[]   如果没有删除元素也是返回一个空数组
      console.log(b)  // [1, 2, "a", "b", 3, 4, 5]
      console.log(b.splice(2,2,[1,2],3))   // a b
      console.log(b)  //[1, 2, [1, 2], 3, 3, 4, 5]
      // push 和pop
       var  stack=[];
       console.log(stack.push(1,2))  //2  返回的是数组新的长度
       console.log(stack) // 1 2
       console.log(stack.pop()) //2 
        // 删除数组的最后一个元素减小数组的长度并且返回他删除的数值   返回的是删除的数值  返回的是删除的数值  返回的是删除的数值(重要的事情说三遍)

        // unshift 和shift

        var a=[];
        console.log(a.unshift(1));   //1   返回数组新的长度  这个是在头部添加元素
        console.log(a.unshift(2));   //2  返回数组新的长度  这个是在头部添加元素
        console.log(a)   // 2 1

        console.log(a.shift(2));  //2  删除一个元素并且把他返回
        console.log(a)  // 1

        // toString() 和 toLocalestring()

        var a = [1,2,3];
        console.log(a.toString()) // 1,2,3
        console.log(a)  // [1,2,3]   注意: toString 适合不使用参数的join方法返回的字符串是一样的
        console.log(a.join())  // 1,2,3
        console.log(a.toLocaleString())  //  1,2,3

        // foreach

        var date=[1,2,3,4,5];
        var sum = 0;
        date.forEach(function(value){ sum+=value;})
        console.log(sum)  // 15
         date.forEach(function(v,i,a){ a[i]=v+1;})
         console.log(date)  //[2,3,4,5,6]     参数 数组元素 元素索引 数组本身

        // map
      a = [1,2,3];
      console.log(a.map(function(x){return x*x}))   // 1,4,9   返回一个新的数组 但是并没有修改原来数组的元素
      console.log(a)  // 1,2,3   
       a = [5,4,3,2,1];
        console.log(a.filter(function(x) {
          return x < 3;
        })) // 2 1
        console.log(a)  // [5,4,3,2,1]

       // every 和some

       a = [1,2,3];
       console.log(a.every(function(x){return x<10}))  //true
       console.log(a.every(function(x){return x%2===0}))  //false

       // indexOf 和lastIndexOf

       a = [1,2,3,4];
      console.log(a.indexOf(2))  //1   从头开始返回找到的元素的索引  a[1]=2
      console.log(a.indexOf(1))  //0                         a[0]=1
      console.log(a.lastIndexOf(3));//   从尾开始      2   
      console.log(a.lastIndexOf(1));   // 0  索引为0  
       console.log(a.indexOf(5))//  -1  如果没有找到 那么就返回 -1

都加上了注释 可以拿过去自己解除 注释 看一下效果  

原文地址:https://www.cnblogs.com/ling-du/p/4775543.html