zoukankan      html  css  js  c++  java
  • js数组方法汇总

    摘要:在做项目的时候经常会遇到数组,并进行一堆的操作和方法,所以我在这里进行一个总结,把经常遇到的记录一下,希望能方便大家;

    1.创建数组

    //创建一个空数组
    var arr1 = new Array(); 
    var arr2 = []; 

    2.Array.split()

    解释:将字符串转化为数组;

    let arr = 'abcd';
    let str = arr.split();
    console.log(str)// [a,b,c,d]

    3.Array.toString()

    解释:将数组转化为字符串(字符串间隔为',');

    let arr = [1, 2, 3, 4];
    let str = arr.toString()
    console.log(str)// 1,2,3,4

    4.Array.join()

    解释:与Array.toString一样都是一样将数组转化为字符串,不同的是可以定义字符串的间隔符号;

    let arr = [1, 2, 3, 4];
    let str1 = arr.join()
    let str2 = arr.join('-')
    console.log(str1)// 1234
    console.log(str2)// 1-2-3-4

    5.Array.splice()

    解释:很强大的数组方法,它有很多种用法,可以实现删除、插入和替换。格式作用为Array.splice(开始位置, 删除的个数,元素);

    let arr = [2, 0, 1, 9, 0, 2, 2, 0];
    let arr1 = arr.splice(8, 0, '记载')
    let arr2 = arr.splice(2, 3)
    let arr3 = arr.splice(2, 1, '一')
    console.log(arr1) //[2, 0, 1, 9, 0, 2, 2, 0,'记载']第9位置新增一个元素
    console.log(arr2) //[2,0,2,2,0] 从2位置开始删除三个元素
    console.log(arr3) //[2, 0, '一', 9, 0, 2, 2, 0] 从2位置替换一个元素

    6.Array.push()和Array.pop()

    解释:push()为在数组末尾添加元素,pop()为在数组末尾移除元素;

    var arr = [1,2,3,4];
    var arr1= arr.push(5,6);
    console.log(arr); // [1,2,3,4,5,6]
    var arr2= arr.pop();
    console.log(arr); // [1,2,3,4,5]

    7.Array.shift()和Array.unshift()

    解释:shift()为删除数组的第一项,unshift为将参数添加到数组的开头;

    var arr = [1,2,3,4];
    var arr1= arr.shift();
    console.log(arr); // [2,3,4]
    var arr2= arr.unshift(0,1);
    console.log(arr); // [0,1,2,3,4]

    8.Array.sort()

    解释:将数组数据按升序排列(小-大);

    var arr = [1, 3, 4, 2];
    var arr1= arr.sort()
    console.log(arr1); // [1, 2, 3, 4]

    9.Array.reverse()

    解释:将数组项反转;

    var arr = [1, 2, 3, 4];
    var arr1 = arr.reverse();
    console.log(arr1)); //[4,3,2,1]

    10.Array.slice()

    解释:将数组进行截取成为新的数组,格式为array.slice(开始下标,结束下标);

    var arr = [1,2,3,4,5,6];
    var arr1 = arr.slice(1);
    var arr2 = arr.slice(1,4);
    console.log(arr1); //[1, 3, 5, 7, 9, 11](不变)
    console.log(arr2); //[2, 3, 4,5]

    11.Array.forEach()

    解释:对数组进行循环遍历;

    var arr = [1, 2, 3, 4, 5];
    arr.forEach(function(index,v){
        console.log(index+'-'+v);
    });//0-1 1-2 -2-3 3-4 4-5

    12.Array.filter()

    解释:将所有元素进行判断,将满足条件的元素作为一个新的数组返回;

    let arr = [1, 2, 3, 4, 5]
    const arr1=> value => value >= 3
    let newArr = arr.filter(arr1)
    //newArr = [3, 4, 5] 满足条件的元素返回为一个新的数组

    13.Array.concat()

    解释:将多个数组拼接成一个数组;

    let arr1 = [1, 2, 3]
    let arr2 = [4, 5]
    let arr = arr1.concat(arr2)
    console.log(arr)//[1, 2, 3, 4, 5]

    14.Array.replace()

    解释:将字符串某个字符进行删除或替换;

    let arr = 'abcd';
    let str = arr.replace('b','');
    console.log(str)// acd
    let str = arr.replace('b','f');
    console.log(str)// afcd

    //怎么把后台返回的文字/n换行符改成<br>
      aaa.replace(/ /g, '<br>')
    
    

    题目:

    1.怎么把数组里面参数的每个值取出,放到一个新数组里面?

    例如数组如下:

    [
         {
             num: 16, 
             money: 500, 
             day: "2019-03-15"
          },
          {
             num: 17, 
             money: 540, 
             day: "2019-03-16"
          },
    ]

    思路:我们应该建三个新数组,然后循环遍历上方数组,然后取出每个参数的值加入到新数组里面;

    var Array=上方数组
    var newArrayday  = [];//日期新数组
    var newArraynum  = [];//订单数量新数组
    var newArraymoney  = [];//我的业绩新数组
    var j1 = 0;
    var j2 = 0;
    var j3 = 0;
    for(let i in Array){
            newArrayday[j1++] = Array[i].day
            newArraynum[j2++] = Array[i].num
            newArraymoney[j3++] = Array[i].money
    }
    console.log(newArrayday)
    console.log(newArraynum)
    console.log(newArraymoney)

    2.js去除数组中重复元素的四种方法?

    Array.prototype.method1 = function(){ 
           var arr[];    //定义一个临时数组 
           for(var i = 0; i < this.length; i++){    //循环遍历当前数组 
               //判断当前数组下标为i的元素是否已经保存到临时数组 
               //如果已保存,则跳过,否则将此元素保存到临时数组中 
               if(arr1.indexOf(this[i]) == -1){ 
                   arr.push(this[i]); 
               } 
           } 
           return arr; 
       }
    Array.prototype.method2 = function(){  
                var h{};    //定义一个hash表  
                var arr[];  //定义一个临时数组  
                  
                for(var i = 0; i < this.length; i++){    //循环遍历当前数组  
                    //对元素进行判断,看是否已经存在表中,如果存在则跳过,否则存入临时数组  
                    if(!h[this[i]]){  
                        //存入hash表  
                        h[this[i]] = true;  
                        //把当前数组元素存入到临时数组中  
                        arr.push(this[i]);  
                    }  
                }  
                return arr;  
            }  
     Array.prototype.method3 = function(){  
                //直接定义结果数组  
                var arr=[] ;
                for(var i = 1; i < this.length; i++){    //从数组第二项开始循环遍历此数组  
                    //对元素进行判断:  
                    //如果数组当前元素在此数组中第一次出现的位置不是i  
                    //那么我们可以判断第i项元素是重复的,否则直接存入结果数组  
                    if(this.indexOf(this[i]) == i){  
                        arr.push(this[i]);  
                    }  
                }  
                return arr;  
              
            }  
    Array.prototype.method4 = function(){  
                //将数组进行排序  
                this.sort();  
                //定义结果数组  
                var arr=[];  
                for(var i = 1; i < this.length; i++){    //从数组第二项开始循环遍历数组  
                    //判断相邻两个元素是否相等,如果相等说明数据重复,否则将元素写入结果数组  
                    if(this[i] !== arr[arr.length - 1]){  
                        arr.push(this[i]);  
                    }              
                }  
                return arr;  
                  
            }  

    3.js去除复杂数组某个参数的方法?

    var array=[
         {
              id:1,
              num:2,
              price:100,
              name:'aaa',
         },
         {
              id:2,
              num:5,
              price:200,
              name:'bbb',
         },
    ]
    for(let i in array){
           delete array[i].price; 
           delete array[i].name; 
    }
    //结果为[{ id:1,num:2,},{ id:2,num:5,}]
                               
     
     
    4.最快捷的数组求最大值?
    var arr = [ 1,5,1,7,5,9];
    Math.max(...arr)  // 9 

    5.更短的数组去重写法?

    [...new Set([2,"12",2,12,1,2,1,6,12,13,6])]
     // [2, "12", 12, 1, 6, 13]

     6.数组、字符串的转换?

    转为json:  JSON.parse   eval("("+data+")")

    转为字符串:JSON.stringify

    以上仅仅为数组的一些常用方法,还有一些不常用的未记录,具体请参考权威Array方法,地址如下https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

  • 相关阅读:
    python分布式爬虫-Selenium(针对需要渲染的页面)
    《PHP高性能开发:基础、框架与项目实战》_王甲临
    flutter hello world
    C#+EF+SQLite数据库操作
    【转】Wilcoxon 检验之 rank-sum 与 signed-rank
    [转]多目标进化算法的性能指标总结 (一)
    IDEA查找栏
    [转]IDEA空指针断点
    Java 高斯分布随机数
    【Vegas原创】centos中挖矿病毒kdevtmpfsi的终极解决方法
  • 原文地址:https://www.cnblogs.com/hejun26/p/10406740.html
Copyright © 2011-2022 走看看