js数组方法汇总

摘要:在作项目的时候常常会遇到数组,并进行一堆的操做和方法,因此我在这里进行一个总结,把常常遇到的记录一下,但愿能方便你们;数组

 

1.建立数组this

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

 

2.Array.split()spa

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

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

 

3.Array.toString()code

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

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

 

4.Array.join()排序

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

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(开始位置, 删除的个数,元素);get

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

 

题目:

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,}]
                           

 

 

 

 

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

相关文章
相关标签/搜索