ES5新增
对象调用的方法 | 作用 | 返回值 |
---|---|---|
array.forEach(function(value, index, array){}) | 遍历 | 无 |
array.map(function(value, index, array){}) | 遍历&返回 | 新数组 |
array.filter(function(value, index, array){ return 条件 }) | 过滤&返回 | 新数组 |
array.every(function(value, index, array){ return 条件}) | 遍历&判断 | 布尔值 |
array.some(function(value, index, array){return 条件}) | 遍历&判断 | 布尔值 |
forEach() 遍历
item是形参,如果是简单类型的形参的修改, 不会影响到原来值
let arr = [5, 6, 7, 8];
arr.forEach(function(item){
item = item + 1;
})
//arr没有变化
let arr2 = [
{ name: 'zs', age: 18 },
{ name: 'zs', age: 20 },
]
arr2.forEach(function(item) {
item.age = item.age + 1
})
//{ name: 'zs', age: 19 },
//{ name: 'zs', age: 21 },
这是以下几个方法共享的数据
let arr = [
{ name: 'zs', score: 100 },
{ name: 'ls', score: 99 },
{ name: 'li', score: 59 }
]
map() 遍历 + 返回
例:只保留名字,利用map()
方法返回新数组来做
let onlyNameArr = arr.map( item => item.name )
//onlyNameArr === ['zs','ls','li']
//如果想原数组只保留name,直接赋值即可arr = arr.map(...)
//箭头函数只有一个参数,并需要被return时,不需要加return和花括号(自动加了)
filter() 遍历 + 返回
例:只保留60分以上的同学(包含的信息全都要),利用filter()
过滤并返回新数组
let MoreThan60 = arr.filter( item => item.score >= 60 )
//需要加return条件,会把符合条件的item加到新数组
//(并不是只加item.score,这只是用于判断)
every() 遍历 + 判断
例:比如需要判断所有学生分数是否都高于90
let isMoreThan90 = arr.every( item => item.score >=90 )
//isMoreThan90 === false
some() 遍历 + 判断
只要数组中有一个判断正确,则返回true
ES6新增
对象调用的方法 | 作用 | 返回值 |
---|---|---|
array.find(function(item, index) { return 条件 }) | 遍历 / 查找 | 找到的项 / undefined |
array.findIndex(function(item, index) { return 条件 }) | 遍历 / 查找 | 下标 / -1 |
注意
find()
找第一个符合条件的项, 没找到会返回 undefined
,找所有符合条件的还是使用filter()
方法
findIndex()
找第一个符合条件项的下标, 没找到会返回 -1
复习数组基本的方法
增加
push()
增加到最后一个
shift()
增加到第一个
splice()
传三个参数( 从哪开始删 , 删几个 , 要添加到数组的元素 )
第一个参数如果是负数,则为倒数第几个(从-1开始算,不是0,等价于arr.length – n)
要添加到数组的元素可以有多个item1, item2, …
删除
pop()
删除最后一个
unshift()
删除第一个
splice()
根据索引指定删除某一个
发表回复