我们今天构建的大多数应用程序都需要进行某种数据收集修改。 处理集合中的项目是您很可能遇到的常见操作。 忘记用于循环的常规方式,如(int i; i <value.length>
假设您想要显示产品清单并进行分类,过滤,搜索,修改或更新集合。 或者,也许你想执行快速计算,如总和,乘法等等。 达到此目的的最佳方式是什么?
也许你不喜欢箭头功能,你不想花太多时间学习新的东西,或者它们与你无关。 别担心,你并不孤单。 我将向您展示ES5(功能减速)和ES6(箭头功能)是如何完成的。
请注意:箭头函数和函数声明/表达式不等同,不能一味地替换。 请记住,这个关键字在两者之间的工作方式不同。
我们将要看的方法是:
Spread operator
for…of iterator
includes()
some()
every()
filter()
map()
reduce()
1. Spread operator
Spread运算符将数组扩展为其元素。 它也可以用于对象文字。
我为什么要使用它?
这是一种显示数组项目的简单快捷方式
它适用于数组和对象文字
这是一种传递参数的快速而直观的方式
它只需要三个点...
例:假设你想显示一个最喜欢的食物列表,而不需要创建一个循环函数。 使用这样的扩展运算符:
2. for…of iterator
for ...语句循环/遍历集合,并为您提供修改特定项目的能力。 它取代了传统的做for循环的方式。
我为什么要使用它?
这是添加或更新项目的简单方法
执行计算(总和,乘法等)
使用条件语句时(如果,while,switch等)
导致清洁和可读的代码
例:假设你有一个工具箱,并且你想显示它里面的所有工具。 迭代器的for ...使它变得简单。
3. Includes() method
includes()方法用于检查集合中是否存在特定字符串,并返回true或false。 请记住,它是区分大小写的:如果集合中的项目是SCHOOL,并且您搜索了学校,它将返回false。
我为什么要使用它?
构建简单的搜索功能
这是确定字符串是否存在的直观方法
它使用条件语句来修改,过滤等等
导致可读的代码
例:比如说,无论出于什么原因,您都不知道车库里有什么车,并且您需要一个系统来检查您想要的车是否存在。
4. Some() method
some()方法检查数组中是否存在某些元素,并返回true或false。 这与includes()方法的概念有些相似,只是参数是一个函数而不是一个字符串。
我为什么要使用它?
它确保一些项目通过测试
它使用函数执行条件语句
有些已经足够好了
例:假设你是一个俱乐部老板,并不关心谁进入俱乐部。 但有些人不允许进来,因为他们喝得太多了(我的创造力最好)。 查看下面的ES5和ES6的区别:
ES5:
ES6:
5. Every() method
every()方法遍历数组,检查每个项目,并返回true或false。 与某些()相同的概念。 除了每个项目必须满足条件语句,否则它将返回false。
我为什么要使用它?
它确保每件物品都通过测试
您可以使用函数执行条件语句
例:你最后一次允许一些未成年学生进入俱乐部,有人报告了这一点,警方逮捕了你。 这一次你不会让这种情况发生,你会确保每个人都通过every()运算符来通过年龄限制。
ES5
ES6
6. Filter() method
filter()方法创建一个包含所有通过测试的元素的新数组。
我为什么要使用它?
-
所以你可以避免改变主阵列
它可以让你过滤掉你不需要的物品
为您提供更易读的代码
例:假设您只想返回高于或等于30的价格。过滤掉所有其他价格...
ES5
ES6
7. Map() method
就返回新数组而言,map()方法与filter()方法类似。 但唯一的区别是它用于修改项目。
我为什么要使用它?
-
它可以让你避免更改主阵列
你可以修改你想要的项目
为您提供更易读的代码
例:假设您有一个包含价格的产品清单。 你的经理需要一份清单,在他们征税25%后显示新价格。 map()方法可以帮助你。
ES5
ES6
8. Reduce()方法
reduce()方法获得数组中数字的总和。 换句话说,它将整个数组“缩小”为一个值。 常用于计算。
我为什么要使用它?
计算总和或平均值
这是执行计算的快速方法
例:假设您想要查找一周内的总费用。 使用reduce()来获取该值。
ES5
ES6
/<value.length>
閱讀更多 全棧取經之路 的文章
關鍵字: 应用程序 修改 JavaScript