热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Array的三个技巧

每天学习一个JS小知识1.迭代一个空数组JavaScript中直接创建的数组是松散的,以至于会有很多坑。试着用数组的构造方法创建一个数组,你就会明白我的意思。constarrnew

每天学习一个JS小知识

1. 迭代一个空数组
Javascript 中直接创建的数组是松散的,以至于会有很多坑。试着用数组的构造方法创建一个数组,你就会明白我的意思。

const arr = new Array(4);
[undefined, undefined, undefined, undefined]

你会发现,通过一个松散的数组去循环调用一些转换是非常难的。

const arr = new Array(4);
arr.map((elem, index) => index);
[undefined, undefined, undefined, undefined]

想要解决这个问题,你可以使用在创建新数组的时候使用 Array.apply。

const arr = Array.apply(null, new Array(4));
arr.map((elem, index) => index);
[0, 1, 2, 3]

2. 给方法传一个空参数
如果你想调用一个方法,并不填其中的一个参数时,Javascript 就会报错。

method('parameter1', , 'parameter3');
Uncaught SyntaxError: Unexpected token

我们常用的解决方法是传递 null 或 undefined.

method('parameter1', null, 'parameter3') // or
method('parameter1', undefined, 'parameter3');

自从 Javascript 把 null 当做一个 object 的时候。根据 ES6 中对扩展运算符的介绍,有一个更简洁的方法可以将空参数传递给一个方法。正如前文所提到的,数组是松散的,所以给它传空值是可以的,我们正式用到了这个优点。

method(...['parameter1', , 'parameter3']); // works

数组去重
我一直不明白为什么数组不提供一个内置函数可以让我们方便的取到去重以后的值。扩展运算符帮到了我们,使用扩展运算符配合 Set Spread operators are here for the rescue. Use spread operators with the Set 可以生成一个不重复的数组。

const arr = [...new Set([1, 2, 3, 3])];
[1, 2, 3]

推荐阅读
author-avatar
驴友团的新家处_273
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有