ES6 - (数组与对象)

以前的es6 教程中有说过一句代码实现数组去重的方法(http://www.cnblogs.com/lafitewu/p/8480055.html)html

今天还给你们带来一个新的去重方法:Setes6

const arr = [1,0,2,0,5,4,4,5,0,1]面试

let newArr = [...new Set([1,0,2,0,5,4,4,5,0,1])]数组

console.log(newArr)  // [1,0,2,5,4]es5

感受这种方法更为简洁。htm

说到这里,此处也碰到一个奇怪的问题。对象

console.log(typeof(newArr))  // objectblog

what? ? ? 这是什么个状况?它不是应该打印出array么?教程

 

懵逼中...   10分钟过去后,独自折腾,终于get

要想判断一个类型是否是数组类型,能够用 console.log(Array.isArray(arr)) // true

这时忽然想起,之前面试时,总有面试官会问,你如何判断一个变量类型是数组仍是对象啊? 我毫无防备的说 typeof ,嗯仍是本身太年轻。

typeof 也能够,可是得这样玩 console.log(typeof(arr.length))  // number ,之因此能够这样判断,是由于对象是没有 length 这个属性的, 你get了吗?

最后new Set() 出来的是一个object 类型,这时候能够用 ... 或者 Array.from(newArr) 来转化成数组类型。 ps: 这是es6 对象转数组

es5:  [].slice.call(newArr2)

相关文章
相关标签/搜索