1.map: map(fun())javascript
map便是 “映射”的意思,返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值java
let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // 每一个元素除以10,最后返回一个新数组newArray let newArray = array.map(value => value/10); //[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] // 语法: arr.map(function(value,index,arr){ // 这里能够写本身的逻辑 });
2.some: some(fun())数组
依次执行数组的每一个元素,函数
若是有一个元素知足条件,则表达式返回true , 剩余的元素不会再执行检测; 测试
若是没有知足条件的元素,则返回falsespa
array.some(function(value){ console.log(value); }); array.some(a => a>23); //false (每个都小于23) array.some(a => a>2); //true (第二个就大于2) // 语法 array.some(function(currentValue,index,arr){ // 逻辑 })
3.every: every(fun())code
使用指定函数检测数组中的全部元素:ip
若是数组中检测到有一个元素不知足,则整个表达式返回 false ,且剩余的元素不会再进行检测字符串
若是全部元素都知足条件,则返回 trueit
array.every(a => a>3); // false (第一个就小于3) array.every(a => a>0); // true (每个都大于0) // 语法 array.every(function(currentValue,index,arr){ // 逻辑 })
4.filter: filter(fun())
建立一个新的数组,新数组中的元素是经过检查指定数组中符合条件的全部元素
array.filter(a => a%2==0); // 返回一个新的偶数数组 [2, 4, 6, 8, 10] // 语法 array.filter(function(currentValue,index,arr){ // 逻辑 })
5.reduce:
接收一个函数做为累加器,数组中的每一个值(从左到右)开始缩减,最终计算为一个值
能够做为一个高阶函数,用于函数的 compose
array.reduce((a,b)=> a+b); // 结果为数组全部元素的何:55 // 语法 reduce((total,currentValue, index,arr) => total + currentValue); // total: 必需。初始值, 或者计算结束后的返回值 // currentValue: 必需。当前元素
6.concat: 链接两个或多个数组
该方法不会改变现有的数组,而仅仅会返回被链接数组的一个副本
这里须要注意: concat() 操做的参数是数组,可是添加到newA中的书数组中的元素,而不是数组,结果以下:
let a1 = ["a","b"]; let a2 = ["c","d"]; let a3 = ["e","f"]; let newA = a1.concat(a2,a3); // newA: ["a", "b", "c", "d", "e", "f"] // 可简写成 let newB = [...a1,...a2,...a3,"k"] // newB: ["a", "b", "c", "d", "e", "f","k"],数组的位置能够任意更换
7.slice: array.slice(start, end);
从已有的数组中返回选定的元素; 包含从 [start,end)的 arrayObject 中的元素,其中start可为负,表示从倒数开始(字符串一样适用)
array.slice(); // 至关于复制,[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] // 可简写 let array1 = [...arr]; array.slice(5); // 第5个开始到末尾:[6, 7, 8, 9, 10] array.slice(-2); // 倒数第2个开始到末尾:[9, 10] array.slice(1,3); //array.slice(1,3);
8.splice:
方法用于插入、删除或替换数组的元素
注意:这种方法会改变原始数组!
array.splice(index,howmany,item1,.....,itemX) // index: 必需。规定从何处添加/删除元素; 该参数是开始插入和(或)删除的数组元素的下标,必须是数字 // howmany: 必需。规定应该删除多少元素。必须是数字,但能够是 "0"; 若是未规定此参数,则删除从 index 开始到原数组结尾的全部元素 // item1, ..., itemX: 可选。要添加到数组的新元素 let array5 = array.splice(2,4); // 从第3个开始,删除4个,array: [1, 2, 7, 8, 9, 10] 返回被删的元素数组array5:[3, 4, 5, 6] array = [1, 2, 3]; array.splice(2,1,99); //将第三个值改成99 array:[1, 2, 99] array = [1, 2, 3]; array.splice(2,0,88); //给第三个位置加个值88 array:[1, 2, 88, 3]
9. find: 返回经过测试(函数内判断)的数组的第一个元素的值
数组中的每一个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,以后的值不会再调用执行函数。
若是没有符合条件的元素返回 undefined
let personList = [ { name: '张三', sex: '1'}, { name: '李四', sex: '2'}, { name: '王五', sex: '2'}, ] personList.find(person => person.name ==='李四' && person.sex === '2'); // {name: "李四", sex: "2"}