JavaScript es6 语法 map().filter() 链式调用,语法解析 和常见demo

摘要:

map:遍历数组并对每个元素执行回调函数,返回一个新数组

filter:对 map 返回的数组进行过滤,返回满足条件的元素组成的新数组

1.数字数组处理

javascript 复制代码
const numbers = [1, 2, 3, 4, 5];

// 先平方,再筛选偶数
const result = numbers
  .map(num => num * num)  // [1, 4, 9, 16, 25]
  .filter(num => num % 2 === 0);  // [4, 16]

console.log(result); // [4, 16]

2.对象数组转换

javascript 复制代码
const users = [
  { id: 1, name: 'Alice', active: true },
  { id: 2, name: 'Bob', active: false },
  { id: 3, name: 'Charlie', active: true }
];

// 获取所有活跃用户的名称
const activeUserNames = users
  .filter(user => user.active)  // 先过滤活跃用户
  .map(user => user.name);  // 再提取名字

console.log(activeUserNames); // ['Alice', 'Charlie']

3.数据清洗

javascript 复制代码
const data = [' hello ', ' world ', '', '  ', 'good'];

// 去除空白字符并过滤空字符串
const cleanedData = data
  .map(str => str.trim())  // 去除两端空格
  .filter(str => str.length > 0);  // 过滤空字符串

console.log(cleanedData); // ['hello', 'world', 'good']

语法解析

javascript 复制代码
// 传统函数写法
numbers.map(function(num) {
  return num * num;
})

// 箭头函数写法  (复杂函数体需要大括号和 return)
numbers.map((num )=> {  
  return   num * num;
})

//当函数体只有单个表达式时: 可以省略大括号 {} 
//该表达式的结果会自动作为返回值(不需要 return 关键字)
numbers.map((num) => num * num)

//当只有一个参数时,可以省略括号 ()
numbers.map(num => num * num)
  
相关推荐
杨丰玮4181 分钟前
暑假Java知识点回顾:类与对象知识总结
java·开发语言
Patrick在香港9 分钟前
Python asyncio vs 多线程 vs 多进程——同一份 HKOpenDataClient 实测 5/30/100 endpoint,谁是真的银弹
开发语言·python
牛油果子哥q12 分钟前
C++异常处理万字详解:try-throw-catch机制、栈展开、标准异常体系、自定义异常、工程规范、内存泄漏避坑
开发语言·jvm·c++
Metaphor69212 分钟前
使用 Python 设置 Excel 文件属性
开发语言·python·excel
艾莉丝努力练剑19 分钟前
【AI大模型接入SDK】C++日志体系与spdlog封装的理论部分
开发语言·c++·ide·人工智能·学习·面试·trae
dear_bi_MyOnly22 分钟前
C语言控制语句与循环逻辑精讲
c语言·开发语言·学习·分类
Dovis(誓平步青云)24 分钟前
心情日记的安全编辑流程:输入校验、删除确认与状态回收
android·运维·服务器·开发语言·windows·安全
sibylyue25 分钟前
# Web端流媒体JS播放器开源库
前端·javascript·开源
落魄大学生之流水线上谋生计40 分钟前
Python Literal[] 类型提示详解
开发语言·python
铁皮饭盒40 分钟前
网页端, 5.5mb谷歌模型, 识别躯干, 视频都不卡
前端·javascript·后端