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(/\n/g, '<br>')

 

15.Array.includes()

解释:判断数组里的值是否与参数相符;

[4, 5].includes(row.orderStatus)

 

16.Array.forEach()

解释:往数组里添加值;

arr.forEach(function(val, index) {
      val.isShow = false;
      val.secondList = [];
    })

 

 

题目:

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

 

posted @ 2019-02-20 15:10  骑码行天下  阅读(1293)  评论(0编辑  收藏  举报