随笔 - 33  文章 - 0  评论 - 0  阅读 - 8221

map()和filter()的用法

1.map()函数

(1)map()适用于映射新的数组

let arr1 = [1, 4, 9, 16];
let NewArr = arr1.map((x) => x * 2);
console.log(NewArr); // [2, 8, 18, 32];

 但是,当用if条件返回时,会出现undefined

let arr1 = [1, 4, 9, 16];
let NewArr = arr1.map((x) => {
    if( x == 4) {
        return x*2
    }
});
console.log(NewArr); // [undefined, 8, undefined, undefined];

原因在于,map()方法创建一个新数组,不改变原数组,但是这个数组不是遍历完以后才被赋值的,而是每遍历一次就会返回一个值,所以只有当x = 4的时候才会return 8,而其他遍历因为没有return 所以就返回了undefined。

要注意的是return什么就会返回什么:

let arr1 = [1, 4, 9, 16];
let NewArr = arr1.map((x) => {
    return x!=4
});
console.log(NewArr); // [true, false, true, true];

这里想要返回x不等于4的值,但是如果这么写的话,返回的就是true和false

(2)map可以重新格式化数组中的对象

var arr1 = [{key: 1, value: 10}, {key: 2, value: 20}, {key: 3, value: 30}]
var NewArr = arr1.map(function(obj) {
    var nobj = {}
    nobj[obj.key] = obj.value
    return nobj
})
console.log(NewArr)//[{1: 10}, {2: 20}, {3: 30}]

2. filter()函数

filter函数主要是过滤作用,筛选出符合一定条件的数组元素并形成新的数组,不改变原数组

let arr1 = [1, 2, 3, 4, 5]
let newArr = arr1.filter(item => {
    return item < 4
})
console.log(newArr)//[1, 2, 3]

 

posted on   zy89898976  阅读(102)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示