目录
- 原始数组
- filter:检测数值元素,并返回符合条件所有元素的数组。
- map:通过指定函数处理数组的每个元素,并返回处理后的数组。
- forEach:数组每个元素都执行一次回调函数。
- find:返回符合传入测试(函数)条件的数组元素。
- findIndex:返回符合传入测试(函数)条件的数组元素索引。
- reduce:将数组元素计算为一个值(从左到右)。
- pop(shift与之相反):删除数组的最后一个元素并返回删除的元素。
- push(unshift与之相反):向数组的末尾添加一个或更多元素,并返回新的长度。
- slice:选取数组的一部分,并返回一个新数组。
- splice:从数组中添加或删除元素。
- fill:使用一个固定值来填充数组。
- sort:对数组的元素进行排序。
- reverse:反转数组的元素顺序。
- concat:连接两个或更多的数组,并返回结果。
- some(some一个true就是true,every所有true才是true):检测数组元素中是否有元素符合指定条件。
原始数组
const arr = [{
name: "孟美岐", age: 18
}, {
name: "黄婷婷", age: 19
}, {
name: "鞠婧祎", age: 20
}, {
name: "佟丽娅", age: 21
}, {
name: "林志玲", age: 22
}]
filter:检测数值元素,并返回符合条件所有元素的数组。
/**
* filterResponse:返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。
* item:当前元素的值
* index?:当前元素的索引值
* array?:当前元素属于的数组对象
* 注意:不会改变原始数组
*/
const filterResponse = arr.filter((item, index, array) => {
return true
})
console.log(filterResponse)
map:通过指定函数处理数组的每个元素,并返回处理后的数组。
/**
* mapResponse:返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
* item:当前元素的值
* index?:当前元素的索引值
* array?:当前元素属于的数组对象
* 注意:不会改变原始数组
*/
const mapResponse = arr.map((item, index, array) => {
// const el = {...item}
const el = Object.assign({}, item)
el.husband = "我"
return el
})
console.log(mapResponse)
forEach:数组每个元素都执行一次回调函数。
/**
* item:当前元素的值
* index?:当前元素的索引值
* array?:当前元素属于的数组对象
*/
arr.forEach((item, index, array) => {
console.log(item)
})
find:返回符合传入测试(函数)条件的数组元素。
/**
* findResponse:返回符合测试条件的第一个数组元素值,如果没有符合条件的则返回 undefined。
* item:当前元素的值
* index?:当前元素的索引值
* array?:当前元素属于的数组对象
* 注意:不会改变原始数组
*/
const findResponse = arr.find((item, index, array) => {
return true
})
console.log(findResponse)
findIndex:返回符合传入测试(函数)条件的数组元素索引。
/**
* findIndexResponse:返回符合测试条件的第一个数组元素索引,如果没有符合条件的则返回 -1。
* item:当前元素的值
* index?:当前元素的索引值
* array?:当前元素属于的数组对象
* 注意:不会改变原始数组
*/
const findIndexResponse = arr.findIndex((item, index, array) => {
return true
})
console.log(findIndexResponse)
reduce:将数组元素计算为一个值(从左到右)。
/**
* reduceResponse:返回计算结果
* computedVal:初始值, 或者计算结束后的返回值
* item:当前元素的值
* index?:当前元素的索引值
* array?:当前元素属于的数组对象
* initVal?:传递给函数的初始值
*/
let initVal = 0
const reduceResponse = arr.reduce((computedVal, item, index, array) => {
return computedVal + index
}, initVal)
console.log(reduceResponse)
pop(shift与之相反):删除数组的最后一个元素并返回删除的元素。
/**
* popResponse:返回删除的元素
* 注意:此方法改变数组的长度
* 提示:移除数组第一个元素,请使用 shift() 方法。
*/
const popResponse = arr.pop()
console.log(popResponse)
push(unshift与之相反):向数组的末尾添加一个或更多元素,并返回新的长度。
/**
* pushResponse:数组新长度
* itemX:要添加到数组的元素
* 注意:此方法改变数组的长度
* 提示:在数组起始位置添加元素请使用 unshift() 方法。
*/
const item = {name: "姜贞羽", age: 23}
const pushResponse = arr.push(item)
console.log(pushResponse)
slice:选取数组的一部分,并返回一个新数组。
/**
* sliceResponse:选取的新数组
* start:开始索引(包括该元素)
* end:结束索引(不包括该元素)
* 注意:不会改变原始数组
*/
const start = 0
const end = 2
const sliceResponse = arr.slice(start, end)
console.log(sliceResponse)
splice:从数组中添加或删除元素。
/**
* spliceResponse:如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
* index:规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
* howmany?:规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
* itemX?:要添加到数组的新元素
* 注意:这种方法会改变原始数组
*/
const index = 0
const howmany = 0
const item = {name: "姜贞羽", age: 23}
const spliceResponse = arr.splice(index, howmany, item)
console.log(spliceResponse)
fill:使用一个固定值来填充数组。
/**
* fillResponse:数组
* value:填充的值
* start?:开始填充位置
* end?:停止填充位置 (默认为 array.length)
*/
const value = {name: "姜贞羽", age: 23}
const start = 0
const end = arr.length
const fillResponse = arr.fill(value, start, end)
console.log(fillResponse)
sort:对数组的元素进行排序。
/**
* sortResponse:对数组的引用。请注意,数组在原数组上进行排序,不生成副本
* 注意:这种方法会改变原始数组
*/
const sortResponse = arr.sort((a, b) => {
return b.age - a.age
})
console.log(sortResponse)
reverse:反转数组的元素顺序。
/**
* reverseResponse:颠倒顺序后的数组
*/
const reverseResponse = arr.reverse()
console.log(reverseResponse)
concat:连接两个或更多的数组,并返回结果。
/**
* concatResponse:返回一个新的数组。该数组是通过把所有 itemX 参数添加到 arrayObject 中生成的。
* 如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
* itemX:该参数可以是具体的值,也可以是数组对象。可以是任意多个。
*/
const item = [{name: "周也", age: 23}]
const concatResponse = arr.concat(item)
console.log(concatResponse)
some(some一个true就是true,every所有true才是true):检测数组元素中是否有元素符合指定条件。
/**
* someResponse:布尔值。如果数组中有元素满足条件返回 true,否则返回 false
* item:当前元素的值
* index?:当前元素的索引值
* array?:当前元素属于的数组对象
* 注意:不会改变原始数组
*/
const someResponse = arr.some((item, index, array) => {
return true
})
console.log(someResponse)