数组常用方法整理

开发过程中主要是对对象,数据进行各种操作,达到处理数据的目的,js提供的方法很多,现记录下较常用的方法和应用场景,随时补充。

一、forEach

forEach()方法用于调用数组的每个元素,并将元素传递给回调函数。

就是遍历方法,适用于数组和对象

语法:array.forEach(function(currentValue, index, arr), thisValue)

注意两点:1.对于空数组是不会执行回调函数的

                  2.不支持的 continue 与 break 语句

二、.map() 

map()方法 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

语法:array.map(function(currentValue,index,arr), thisValue)

注意: map() 不会改变原始数组。

应用场景/例子:

返回:arrayDom数组中所有的dicName对应的value组成的数组

arrayDom=[
{ dicCode:1,dicName:'数学' },
{ dicCode:2,dicName:'语文'},
{dicCode:3,dicName:'英语'}]

arrayDom.map(p=>p.dicName).join(';')               //结果:"数学;语文;英语"

三、.splice()   

splice() 方法用于添加或删除数组中的元素。 很常用,可添加,可删除,区别于slice() 方法

语法:array.splice(index,howmany,item1,.....,itemX)

注意:适用于字符串

应用场景/例子:

1.移除数组的第三个元素,并在数组第三个位置添加新元素

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi");       //结果:Banana,Orange,Lemon,Kiwi,Mango

2.向数组中插入元素

fruits.splice(2,0,"Lemon","Kiwi");      

3.删除       

fruits.splice(2,2);

四、slice()

定义:

        1.方法可从已有的数组中返回选定的元素。

        2.方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。 适用于字符串

语法array.slice(startend)

注意:面试容易问生成新数组的拷贝规则

应用场景/例子:

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var myBest = fruits.slice(-3,-1); // 截取倒数第三个(包含)到倒数第一个(不包含)的两个元素
var myBest = fruits.slice(-3);  // 截取最后三个元素

数组常用方法列表:

参考菜鸟教程

每个版本按照应用频率高低排列

方法

描述

版本

find()

方法为数组中的每个元素都调用一次函数执行:

当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。

如果没有符合条件的元素返回 undefined

array.find(function(currentValue, index, arr),thisValue)

ES6

findIndex()

方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。

ES6

copyWithin()

从数组的指定位置拷贝元素到数组的另一个指定位置中。
array.copyWithin(target, start, end)

ES6

entries()

返回数组的可迭代对象。

array.entries()

ES6

fill()

使用一个固定值来填充数组。

array.fill(value, start, end)

ES6

keys()

返回数组的可迭代对象,包含原始数组的键(key)。

ES6

from()

通过给定的对象中创建一个数组。

Array.from(object, mapFunction, thisValue)

ES6

includes()

判断一个数组是否包含一个指定的值,如果是返回 true,否则false。

arr.includes(searchElement, fromIndex)

ES6

forEach()

数组每个元素都执行一次回调函数。
array.forEach(function(currentValue, index, arr), thisValue)

isArray()

判断对象是否为数组。

Array.isArray(obj)

indexOf()

该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。

如果在数组中没找到指定元素则返回 -1。

array.indexOf(item,start)

concat()

连接两个或更多的数组,并返回结果(不改变原数组,结果为副本)。

join()

把数组的所有元素放入一个字符串。

array.join(separator)

toString()

把数组转换为字符串,并返回结果。数组中的元素之间用逗号分隔。

filter()

检测数值元素,并返回符合条件所有元素的数组。

array.filter(function(currentValue,index,arr), thisValue)

map()

通过指定函数处理数组的每个元素,并返回处理后的数组。

array.map(function(currentValue,index,arr), thisValue)

some()

方法会依次执行数组的每个元素:

如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。

如果没有满足条件的元素,则返回false。array.some(function(currentValue,index,arr),thisValue)

every()

检测数值元素的每个元素是否都符合条件。

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

splice()

从数组中添加或删除元素。

array.splice(index,howmany,item1,.....,itemX)

slice()

选取数组的一部分,并返回一个新数组。

array.slice(start, end)

push()

向数组的末尾添加一个或更多元素,并返回新的长度。

unshift()

向数组的开头添加一个或更多元素,并返回新的长度。

pop()

删除数组的最后一个元素并返回删除的元素。

shift()

删除并返回数组的第一个元素。

valueOf()

返回数组对象的原始值。

lastIndexOf()

搜索数组中的元素,并返回它最后出现的位置。

reverse()

反转数组的元素顺序。

sort()

对数组的元素进行排序。

array.sort(sortfunction)

reduce()

将数组元素计算为一个值(从左到右)。

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

reduceRight()

将数组元素计算为一个值(从右到左)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值