开发过程中主要是对对象,数据进行各种操作,达到处理数据的目的,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(start, end)
注意:面试容易问生成新数组的拷贝规则
应用场景/例子:
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var myBest = fruits.slice(-3,-1); // 截取倒数第三个(包含)到倒数第一个(不包含)的两个元素
var myBest = fruits.slice(-3); // 截取最后三个元素
数组常用方法列表:
参考菜鸟教程
每个版本按照应用频率高低排列
方法 | 描述 | 版本 |
方法为数组中的每个元素都调用一次函数执行: 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。 如果没有符合条件的元素返回 undefined array.find(function(currentValue, index, arr),thisValue) | ES6 | |
方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。 | ES6 | |
从数组的指定位置拷贝元素到数组的另一个指定位置中。 | ES6 | |
返回数组的可迭代对象。 array.entries() | ES6 | |
使用一个固定值来填充数组。 array.fill(value, start, end) | ES6 | |
返回数组的可迭代对象,包含原始数组的键(key)。 | ES6 | |
通过给定的对象中创建一个数组。 Array.from(object, mapFunction, thisValue) | ES6 | |
判断一个数组是否包含一个指定的值,如果是返回 true,否则false。 arr.includes(searchElement, fromIndex) | ES6 | |
数组每个元素都执行一次回调函数。 | ||
判断对象是否为数组。 Array.isArray(obj) | ||
该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。 如果在数组中没找到指定元素则返回 -1。 array.indexOf(item,start) | ||
连接两个或更多的数组,并返回结果(不改变原数组,结果为副本)。 | ||
把数组的所有元素放入一个字符串。 array.join(separator) | ||
把数组转换为字符串,并返回结果。数组中的元素之间用逗号分隔。 | ||
检测数值元素,并返回符合条件所有元素的数组。 array.filter(function(currentValue,index,arr), thisValue) | ||
通过指定函数处理数组的每个元素,并返回处理后的数组。 array.map(function(currentValue,index,arr), thisValue) | ||
方法会依次执行数组的每个元素: 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。 如果没有满足条件的元素,则返回false。array.some(function(currentValue,index,arr),thisValue) | ||
检测数值元素的每个元素是否都符合条件。 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。 | ||
从数组中添加或删除元素。 array.splice(index,howmany,item1,.....,itemX) | ||
选取数组的一部分,并返回一个新数组。 array.slice(start, end) | ||
向数组的末尾添加一个或更多元素,并返回新的长度。 | ||
向数组的开头添加一个或更多元素,并返回新的长度。 | ||
删除数组的最后一个元素并返回删除的元素。 | ||
删除并返回数组的第一个元素。 | ||
返回数组对象的原始值。 | ||
搜索数组中的元素,并返回它最后出现的位置。 | ||
反转数组的元素顺序。 | ||
对数组的元素进行排序。 array.sort(sortfunction) | ||
将数组元素计算为一个值(从左到右)。 array.reduce(function(total, currentValue, currentIndex, arr), initialValue) | ||
将数组元素计算为一个值(从右到左)。 |