数组常用方法汇总

数组的常用方法

1.length()
(1)用于设置或返回数组的中元素的数目。

var arr=[1,2,3,4,5,6];
console.log(arr.length);//6
2.push()
(1)用于向数组的末尾添加一个或多个元素,并返回新数组的长度,也就是添加元素后数组的长度,改变原数组。

var arr=[1,2,3,4,5,6];
console.log(arr.push(5));//7
3.shift()
(1)用于把数组的第一个元素从其中删除,并返回第一个元素的值,改变原数组。

var arr=[1,2,3,4,5,6];
console.log(arr.shift());//1
4.unshift()
(1)向数组的开头添加一个或多个元素,返回新数组的长度,改变原数组。

var arr=[1,2,3,4,5,6];
console.log(arr.unshift(7));//7
console.log(arr);//[7,1,2,3,4,5,6]
5.pop()
(1)用于删除并返回数组最后一个元素,改变原数组。

var arr=[1,2,3,4,5,6];
console.log(arr.pop());//6
6.splice()
(1)用于插入,删除或替换数组的元素,当进行删除时返回被删除的项目,该方法改变原数组。
splice(index,howmany,item1, ..., itemX)index:必填值,整数,规定添加/删除的位置,使用负数从数组结尾处规定位置;
howmany:必填值,要删除的数量。如果设置为0,则不会删除项;
item1, ..., itemX:可选,向数组添加新的项。

删除功能:
var arr=[1,2,3,4,5,6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
var newArr=arr.splice(0,3)
console.log(newArr);//[1,2,3]

删除替换功能:(从数组的第一项删除两项用34替换)
var arr=[1,2,3,4,5,6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
var newArr=arr.splice(0,2,34)
console.log(arr);//[34, 3, 4, 5, 6]
console.log(newArr);//[1,2]

插入功能:
var arr=[1,2,3,4,5,6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
var newArr=arr.splice(1,0,9)
console.log(arr);//[1, 9, 2, 3, 4, 5, 6]
7.slice()
(1)从已有数组中返回选定的元素,返回一个新数组,包含从start到end的数组元素,不改变原数组。
slice(start,end) 前闭后开
注意:该方法不会改变原数组,而是返回一个子数组,包含从start到end(不包括该元素)的元素
	start:必传,规定从何处开始选取,如果为负数,规定从数组尾部算起的位置,-1为数组的最后一个元素。
    end:可选,如果该参数没有指定,那么切分数组包含从start到数组结束的所有元素,如果这个参数为负数,那么规定是从数组尾部开始算起的元素。

var arr=[1,2,3,4,5,6];
var newArr=arr.slice(1,4)
console.log(arr);//[1,2, 3, 4, 5, 6]
console.log(newArr);//[2, 3, 4]
8.join()
(1)将一个数组的所有元素根据传入的参数连接成一个字符串,并返回这个字符串,不改变原数组。

var arr=[1,2,3,4,5,6];
var newArr=arr.join('-')
console.log(arr);//[1,2, 3, 4, 5, 6]
console.log(newArr);//1-2-3-4-5-6
9.toString()
(1)把数组替换成字符串,并返回结果。

var arr=[1,2,3,4,5,6];
var newArr=arr.toString()
console.log(arr);//[1,2, 3, 4, 5, 6]
console.log(newArr);//1,2,3,4,5,6
10.reverse()
(1)用于将数组倒置,改变原数组。

var arr=[1,2,3,4,5,6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
var newArr=arr.reverse()
console.log(arr);//[6, 5, 4, 3, 2, 1]
console.log(newArr);//[6, 5, 4, 3, 2, 1]
11.concat()
(1)用于连接两个或多个数组,不改变原数组。

var arr=[1,2,3,4,5,6];
var arr1=[9,10,11,12];
console.log( arr.concat(arr1));//[1, 2, 3, 4, 5, 6, 9, 10, 11, 12]
12.indexOf()
(1)查找数组中的某一项,当该项存在于数组中时,返回该项的下标,不存在时,返回-1

var arr=[1,2,3,4,5,6];
console.log(arr.indexOf(5));//4
console.log(arr.indexOf(9));//-1
13.forEach()
(1)遍历数组中的每一项,该方法用于调用数组中每一项元素,并将元素传递给回调函数,改变原数组。
用法:array.forEach(function(cunrrent,index,arr){},thisValue)cunrrent:必填,当前元素;
index:可选,当前元素的索引;
arr:可选,当前元素所属的数组对象;
thisValue:可选,传递给函数的值一般一般用this的值,如果这个参数为空,"undefined"会传递给"this"值(这个一般很少用)。


var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
arr.forEach(function (value, index, array) {
      arr[index] = value * 2;
	});
console.log(arr);//[2, 4, 6, 8, 10, 12]
14.map()
(1)遍历数组的每一项,返回一个新数组,不改变原数组,新数组中的元素为原数组中的每个元素调用函数处理得到的值。
语法:array.map(function(item,index,arr){})
注意:1.map()不会对空数组进行检查。
     2.map()不会改变原数组。
     3.map()是数组的方法,有一个参数,参数为一个函数,函数中传入三个参数。
     	参数1:item必填,当前元素的值;
        参数2:index可选,当前元素在数组中的索引值;
        参数3:arr可选,当前元素所属的数组对象。

        
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
var newArr = arr.map(function (item, index, arr) {
         return item * 2;
    });
console.log(arr);//[1, 2, 3, 4, 5, 6]
console.log(newArr);//[2, 4, 6, 8, 10, 12]
15.filter()
(1)语法:array.filter(function(value,index,arr){},thisValue)
	需要一个回调函数用来写过滤的逻辑,把所有符合条件的数组放到新数组中返回,返回一个过滤的新数组,不改变原数组。
(2)参数:
    value:必选参数,指向原数组中的当前项;
    index:可选项,value的索引;
    arr:可选项,当前元素所属的数组对象。
(3)用法:filter它用于Array的某些元素过滤掉,返回剩下的元素。和map()类似,Array的filter()也接收一个函数,和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。其中filter()返回的数组内是所有满足条件的元素,而find()只返回第一个满足条件的元素,如果条件不满足,filter()返回一个空数组,find()返回undefinedvar arr = [1, 2, 3, 4, 5, 6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
var newArr = arr.filter(function (value, item, arr) {
         return value > 2;
	});
console.log(arr);//[1, 2, 3, 4, 5, 6]
console.log(newArr);//[3,4,5,6]
16.find()
(1)主要用于查找第一个符合条件的数组元素,参数为一个函数,在回调函数中可以写你查找的条件,当条件为true时,返回该元素,如果没有符合条件的元素,返回undefinedfind()方法不会更改原始数组。
 
 
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
var newArr = arr.find(function (value, item, arr) {
        return value > 2;
  });
console.log(arr);//[1, 2, 3, 4, 5, 6]
console.log(newArr);//3


var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
var newArr = arr.find(function (value, item, arr) {
        return value >7;
  });
console.log(arr);//[1, 2, 3, 4, 5, 6]
console.log(newArr);//undefined
17.every()
(1)遍历数组的每一项,只有所有元素都满足条件时,则返回true,如果有一个元素不满足条件则返回false,不改变原数组。


var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
var newArr = arr.every(function (value, item, arr) {
       return value >7;
});
console.log(arr);//[1, 2, 3, 4, 5, 6]
console.log(newArr);//false
18.some()
(1)与every相反,遍历数组,当有一个元素满足条件即返回true。不改变原数组。
注意:遍历数组时,有一个元素满足条件就返回true,不在向右查找。

var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
var newArr = arr.some(function (value, item, arr) {
        return value >2;
   });
console.log(arr);//[1, 2, 3, 4, 5, 6]
console.log(newArr);//true
19.reduce()
(1)用于对数组中的每一项求收敛,求和;不改变原数组。
Array.reduce(function(prev,next,index,arr){})
prev=>初始值或上一次回调函数叠加的值;
next=>本次回调(循环)将要执行的值;
index=>value的索引值;
arr=>数组本身。

reduce()返回的是最后一次调用函数的返回值。

var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
var a = arr.reduce(function (prev, next) {
       console.log(prev, next);
        // 100 1
        // 101 2
        // 103 3
        // 106 4
        // 110 5
        // 115 6
    return prev+next;

});
console.log(arr);//[1, 2, 3, 4, 5, 6]
console.log(a);//121
20.includes()
(1)遍历数组,存在就返回true,不存在就返回false,不改变原数组。

var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);//[1, 2, 3, 4, 5, 6]
var a = arr.includes(5);
var b = arr.includes(7);
console.log(arr);//[1, 2, 3, 4, 5, 6]
console.log(a);//true
console.log(b);//false
21.sort()
(1)用于对数组的元素进行排序,并返回数组,改变原数组。

var arr = [99, 5, 20, 4, 54, 23, 18];
console.log(arr);//[99, 5, 20, 4, 54, 23,18]
var newArr = arr.sort(function (a, b) {
       return a - b;
});
console.log(newArr);//[4, 5, 18, 20, 23, 54, 99]
console.log(arr);//[4, 5, 18, 20, 23, 54, 99]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值