数组常用方法

1.Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。

var arr=[1,2,3,4,5]
arr.push(123,456)
console.log(arr) //[1,2,3,4,5,123,456]

2.Array.pop(),删除并返回数组的最后一个元素,若该数组为空,则返回undefined。原数组改变。

var arr=[1,2,3,4,5]
var del=arr.pop()
console.log(arr,del) //[1,2,3,4] 5

3.Array.unshift(),向数组的开头添加一个或多个元素,并返回新的数组长度。原数组改变。

var arr=[1,2,3,4,5]
var len=arr.unshift(0)
console.log(arr,len) //[0,1,2,3,4,5]  6

4.Array.shift(),删除数组的第一项,并返回第一个元素的值。若该数组为空,则返回undefined。原数组改变。

var arr=[1,2,3,4,5]
var res=arr.shift()
console.log(arr,res) //[2,3,4,5] 1

5.Array.concat(arr1,arr2…),合并两个或多个数组,生成一个新的数组。原数组不变。

var arr=[1,2,3]
var arr1=[4,5]
var arr2=[6]
var res=arr.concat(arr1,arr2)
//res=[1,2,3,4,5,6]
//arr=[1,2,3]

6.Array.join(),将数组的每一项用指定字符连接形成一个字符串。默认连接字符为 “,” 逗号。

var arr=[1,2,3]
var str1=arr.join()
var str2=arr.join("/")
//str1=1,2,3
//str2=1/2/3

7.Array.reverse(),将数组倒序。原数组改变。

var arr=[1,2,3]
arr.reverse();
//arr=[3,2,1]

8.Array.sort(),对数组元素进行排序。按照字符串UniCode码排序,原数组改变。

排序顺序可以是按字母或数字,也可以是升序(向上)或降序(向下)。
默认情况下,sort() 方法将按字母和升序将值作为字符串进行排序。
这适用于字符串。但是,如果数字按字符串排序,则 “25” 大于 “100” ,因为 “2” 大于 “1”。
正因为如此,sort() 方法在对数字进行排序时会产生不正确的结果。
可以通过提供“比较函数”来解决此问题。
从小到大:

var arr=[2,3,1,34,5,33,13]
function sortFun(a,b){
     return a-b;
}
arr.sort(sortFun)

从大到小:

var arr=[2,3,1,34,5,33,13]
function sortFun(a,b){
     return b-a;
}
arr.sort(sortFun)

9.Array.map(function),原数组的每一项执行函数后,返回一个新的数组。原数组不变。

即对数组的每一项进行某种操作,返回操作后的数组,这个操作自己按情况决定。如取数组的平方根:

var arr = [4, 9, 16, 25];

function myFunction() {
    x = document.getElementById("demo")
    x.innerHTML = arr.map(Math.sqrt);
}
输出结果为:2,3,4,5

10.Array.slice()按照条件查找出其中的部分内容,返回新数组

arr.slice(n,m),从索引n开始查找到m出但不包含m
arr.slice(n) 从n开始查到最后
arr.slice(0) 输出原样内容,数组浅克隆
arr.slice(-n,-m) 从倒数n像开始到倒数m项结束,-1则为最后一项

11.Array.splice() 方法用于添加或删除数组中的元素,如果删除一个元素,则返回一个元素的数组。

如果未删除任何元素,则返回空数组,改变原始数组。

var arr=[1,2,3]
arr.splice(2,1)//删除一个元素,返回[3]
arr.splice(2,0,4)//向数组索引2后添加一个元素4,返回[1,2,3,4]

12.Array.forEach(function)方法按顺序为数组中的每个元素调用一次函数,这个函数是要对数组进行处理的操作

比如让数组每个元素加一:

var arr=[1,2,3]
arr.forEach(fn)

function fn(a,b,c){
        arr[b]=a+1
    }
console.log(arr)//[2,3,4]

13.Array.filter(function),过滤数组中,符合条件的元素并返回一个新的数组。

var arr=[1,2,3]
var res=arr.filter((a)=>return a>2)//3

14.Array.every(function)方法用于检测数组所有元素是否都符合指定条件。

如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。 every() 不会对空数组进行检测。 every() 不会改变原始数组。

var arr=[1,2,3]
function fun(arr){
 return arr>0;
}
输出结果为true,若条件改为arr>2则为false

15.Array.some(function)方法用于检测数组中的元素是否满足指定条件。

如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。some() 不会对空数组进行检测。some() 不会改变原始数组。

16.Array.reduce(function)方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

reduce() 可以作为一个高阶函数,用于函数的 compose。reduce() 对于空数组是不会执行回调函数的。

var arr=[1,2,3]
function sum(a,b){
   return a+b;
}
arr.reduce(sum)//输出结果为6

17.Array.indexOf(item,start)方法可返回数组中某个指定的元素位置。

该方法将从头到尾地检索数组,看它是否含有对应的元素。
开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。
如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。
如果在数组中没找到指定元素则返回 -1。如果你想查找字符串最后出现的位置,可以使用 lastIndexOf() 方法。

18.Array.includes()方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。

19.Array.fill(value, start, end) 方法用于将一个固定值替换数组的元素。value填充的值,start开始填充位置,end停止填充位置

20.Array.find(function)方法返回通过测试(函数内判断)的数组的第一个元素的值。方法为数组中的每个元素都调用一次函数执行:

当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 undefined。 find() 对于空数组,函数是不会执行的。find() 并没有改变数组的原始值。

var arr=[1,2,3]
function fun(arr){
   return arr>=2
}
输出结果:2

21.Array.isArray() 方法用于判断一个对象是否为数组。如果对象是数组返回 true,否则返回 false。

22.Array.toString() 方法可把数组转换为字符串,并返回结果。数组中的元素之间用逗号分隔。

23.Array.flat()方法把数组扁平化处理,及把多维数组变为以为数组,返回新数组,原数组不变

[1, 2, 3, [4, 5]].flat(); // [1, 2, 3, 4, 5]

[1, 2, [3, [4, 5]]].flat(); // [1, 2, 3, [4, 5]]

[1, 2, [3, [4, 5]]].flat(2);  // [1, 2, 3, 4, 5]


// 如果不管是几维数组,都要转成一维数组,可以用Infinity关键字作为参数。
[1, [2, [3, [4, [5]]]]].flat(Infinity); // [1, 2, 3, 4, 5]

// 如果数组中有空位,flat()方法会跳过空位。
[1, 2, , 4, 5].flat();  // [1, 2, 4, 5]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值