相关知识点
- 数组去重
- 数组截断
- 过滤掉数组中的
falsy
值 - 获取数组的最后一项
- 清空数组
- 使用
...
运算符合并对象或数组中的对象 - 有条件的添加对象属性
- 解构原始数据
- 动态更改对象的
key
- 判断对象的数据类型
in
关键字的使用
数去去重
方案一(不推荐)
创建一个新数组,然后遍历旧数组,每次检查当前元素是否在新数组中,如果不存在,则加入,否则相反。
方案二(不推荐)
每拿出一项数据,就与当前数组其他数据作对比,相同的数据进行删除,依次遍历所有数据。
上方代码存在一个问题,就是数组塌陷。当我们使用 splice
方法删除的时候,通常将后边的数据都往前移动。所以通过 j--
来达到正常效果。
方案三:基于对象去重(推荐)
方案四:基于 Set 去重(推荐)
Set
是 ES6 的新语法,可以去掉重复的元素。
方案五:filter + indexOf(推荐)
使用 Array
的 .filter
及 indexOf()
来实现。
数组截断
如果你想从数组末尾删除值(删除数组中的最后一项),有比使用 splice()
更快的替代方法。
例如,你知道原始数组的大小,可以重新定义数组的 length
属性的值,就可以实现从数组末尾删除值。
还可以使用 slice()
方法。
过滤掉数组中的 falsy 值
falsy
值(虚值)是在 Boolean
上下文中认定为 false
的值。
在 JavaScript 中只有 8 个 falsy
值:
- false、0、-0、0n、""、''、``、null、undefined、NaN
获取数组的最后一项
数组的 slice()
取值为正值时,从数组的开始处截取数组的项,如果取值为负整数时,可以从数组末属开始获取数组项。
清空数组
使用 ...
运算符合并对象或数组中的对象
合并对象
合并数组中的对象
使用 reduce
方法,第二个参数传空对象 {}
有条件的添加对象属性
解构原始数据
在使用数据的时候,把所有数据都放在一个对象中,同时想在这个数据对象中获取自己想要的数据,在这里可以使用 ES6 的 Destructuring 特性来实现。
比如你想把下面这个 obj
中的数据分成两个部分:
动态更改对象的 key
在对象中,使用 []
包裹动态传入的 key
。
判断对象的数据类型
使用 Object.prototype.toString.call()
配合闭包来实现对象数据类型的判断。
简化写法:
in 关键字的使用
判断对象是否为【数组/对象】的【元素/属性】
- 格式:【变量 in 对象】
- 若“对象”为数组时,“变量”指的是数组的索引;
- 若“对象”为对象时,“变量”指的是对象的属性;
情况一:数组
情况二:对象
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!