目前绝大多数的软件都会涉及数据收集和处理,在日常工作里,处理数组是再平常不过了的操作。忘掉 for 循环吧,别再使用老套的 (let i=0; i < value.length; i++ ) 了。
小提示:如果在 for 循环中使用了const
,你会被报错。因为在循环的时候, i 会递增,被 "i++
" 重新赋值,所以每次在let
和const
之间犹豫不决的时候,你就问自己这个问题:这个值会不会被重新赋值?如果会,就选择let
;如果不会,就选择const
。 更多
打个比方,你需要展示一系列产品,并且对数组进行分类、筛选、修改、更新等操作,又或者说你需要对数组做一些简单的计算,比如加法乘法等等。那么,要怎么操作才是上策呢?
可能你听到箭头函数就摇头,可能你不是一个喜欢花很多时间学新东西的人,可能你觉得这些都与你无关,相信我,你不是唯一一个这样想的人。接下来请先看我用 ES5(普通函数) 和 ES6(箭头函数)来实现这些操作。
注意: 箭头函数和普通函数不完全是一回事儿,不能随意相互替换改写,记住,关键词 this
在箭头函数和普通函数里是两个不同的东西。
本文涉及到的 JavaScript 方法列表:
- 展开操作符
- for…of 循环
- includes()
- some()
- every()
- filter()
- map()
- reduce()
如果你想成为一名更好的 Web 开发者,或者是开创自己的事业,或者是教他人编程,抑或是想要精进自身的编程能力,请关注我的周更系列,我会分享关于最新 Web 开发语言的技巧要点。
1. 展开操作符
展开操作符能用来将数组 (array) 内的元素展开 ,也可以用在对象常量 (object literals) 里。
使用展开操作符的好处有哪些?
- 是一个展示数组元素的简单、直接的方式
- 适用于数组 (array) 和对象常量 (object literals)
- 是一个传递参数的快速、直接的方式
- 只用写三个点…
举个例子: 不写循环来展示最喜欢的食物列表中的元素,通过展开操作符来实现:
2. for…of 循环
for...of
语句可以用来遍历数组,也可以用来改写元素,可以基本替换传统的 for-loop
循环。
使用 for…of
循环的好处有哪些?
- 是一个更新元素的简单方式
- 可以用来完成加法乘法等计算操作
- 可以和条件语句配合使用,比如 if,while,switch 等
- 写出简洁优雅的代码
举个例子: 你想展示工具箱里的工具,那么就可以使用 for...of
循环语句来轻松实现。
3. Includes() 方法
includes()
方法用于检查一个数组中是否含有某个字段,会返回 true
或者 false
值。用来检验的字段要注意大小写,如果你得检验字段是 school
,而数组中只有 SCHOOL
,那么返回值就是 false
。
使用 includes() 的好处有哪些?
- 是一个简易的搜索功能
- 是一个快速判断某字段是否存在的简洁方式
- 可以使用条件语句来进行修改、筛选等操作
- 写出可读性更强的代码
举个例子:假设你想不起你车库里存放着哪些车了,你需要一个系统来帮你判断你想要的车存不存在,那么 includes()
可以帮到你!
4. Some() 方法
some()
方法用来检验数组中是否存在某些元素,返回值为 true
或者 false
,和 includes()
方法的一些核心思想很相近,但是必须注意的是,传进 some()
方法里的参数必须是函数,而不能是字符串。
使用 some() 的好处有哪些?
- 用来验证数组中是否有元素满足检验条件
- 以函数形式来做条件判定
- 陈述式代码
- 检验有无即可
举个例子: 打个比方,你是一家俱乐部的老板,你不想限制客人进店,但对于明显喝多了的客人你不想让他们进来(原谅我贫瘠的想象力)。下面看看如何用 ES5 和 ES6 写这个函数:
ES5:
ES6:
5. Every() 方法
用 every()
来遍历数组,挨个元素检查,最后返回 true
或者 false
值,和 some()
的核心思想是一样的,不同点在于一旦有某个元素不满足检验条件,返回值即为 false
。
使用 every() 的好处有哪些?
- 用来验证数组中是否所有元素都满足检验条件
- 以函数形式来做条件判定
- 陈述式代码
举个例子: 上次你用 some()
方法,让一些年龄不满的学生混进来了,结果被人举报,警察找上了门。所以,这次你要用 every()
来做检验,保证每一个人都满足年龄要求,才能进俱乐部。
ES5
ES6
6. Filter() 方法
filter()
会将通过检验条件的所有元素放进一个新的数组。
使用 filter() 的好处有哪些?
- 不会改动原始数组
- 剔除掉不需要的元素
- 可读性更强的代码
举个例子: 你只想要价格等于 30 或者 30 以上的,其他的价格剔除掉...
ES5
ES6
7. Map() 方法
和 filter()
一样,map()
也会返回一个新的数组,但不同的是,map()
可以用来修改元素。
使用 map() 的好处有哪些?
- 不会改动原始数组
- 修改数组内元素
- 可读性更强的代码
举个例子: 你手头上有一些产品的价格,经理要求你把加 25% 税后的价格报给他,这个时候你就可以使用 map()
方法。
ES5
ES6
8. Reduce() 方法
reduce()
可以将一个数组变成一个数字,一个对象,一系列 promises 等。一个使用 reduce()
的简易场景就是将一系列数字相加求和,将一个数组“浓缩”成一个数值。
使用 reduce() 的好处有哪些?
- 进行计算操作
- 求值
- 重复值数量计数
- 按照属性对对象进行分组
- 按顺序执行 promises
- 快速计算
举个例子: 你想知道这一周花了多少钱,你可以使用 reduce()
求值。
ES5
ES6
原文链接:These JavaScript methods will boost your skills in just a few minutes,作者:Dler Ari