let list = [
{
name: 'sz',
age: 111
},
{
name: 'sz1',
age: 112
}
]
//map
//有返回值,返回新数组,不会改变原数组
const new1 = list.map((value, key, arr) => {
return value.name + '哈哈'
})
console.log(new1)//['sz哈哈', 'sz1哈哈']
//forEach没有返回值,会改变原数组
// list.forEach((item,index,arr)=>{
// item.name=item.name+'嘿嘿'
// })
// console.log(list)
//filter 筛选出复合条件 有返回值
const new2 = list.filter(item => item.name == 'sz' && item.age == 111)
console.log(new2) //[{name: 'sz', age: 111}]
//数组去重
const arr = [1, 2, 2, 3, 4, 5, 5, 6];
const arr2 = arr.filter((x, index, self) => {
console.log(x)
console.log(index)
console.log(self)// [1, 2, 2, 3, 4, 5, 5, 6]
return self.indexOf(x) === index
})
console.log(arr2); //[1, 2, 3, 4, 5, 6]
//new Set 数组去重
//console.log(new Set(arr)) 返回是一个类数组
//Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。
let arr3 = Array.from(new Set(arr))
console.log(arr3)// [1, 2, 3, 4, 5, 6]
//类数组:
//必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。
//该类数组对象的属性名必须为数值型或字符串型的数字 ,且需要和索引一致 否则转换后为 undefined
let obj = {
'abc': 1,
'0': 2,
1: 3,
3: 4,
4: 5,
5: 6,
length: 6
}
let arr4 = Array.from(obj)
console.log(arr4)//[2, 3, undefined, 4, 5, 6]
map(), forEach(), filter()
最新推荐文章于 2023-12-20 19:47:51 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)