let s = new Set([1, 2, 3, 2, 4, 5]);
console.log(s) // Set{1, 2, 3, 4, 5}
console.log(typeof s) // object
console.log(Array.isArray(s)) // false
console.log(Array.isArray(Array.from(s))) // true
Set 结构接受一个数组做参数,生成的是一个 Set 对象,然后用 ES6 的 Array.from() 把它转成数组。
Node.js 已经源生支持 Set 和 Array.from():https://nodejs.org/en/docs/es6/ (其实就是V8支持了,上面这段代码把 let 换成 var 后在 Chrome Console 中就可以跑出来)
找到了 concat
@daileimail 你拼出来的是123245. 不消重复值
这种问题不应该出现在社区,提问者应该学会 Google,查文档。
参考 lodash 里面 union api。
先concat 再去重
或者用underscore的_.union
ES6 的 Set 结构就是干这个的。
Set 结构接受一个数组做参数,生成的是一个 Set 对象,然后用 ES6 的 Array.from() 把它转成数组。 Node.js 已经源生支持 Set 和 Array.from():https://nodejs.org/en/docs/es6/ (其实就是V8支持了,上面这段代码把
let换成var后在 Chrome Console 中就可以跑出来)先做字典,将两个array中各个索引的值作为key遍历一遍,然后直接遍历这个object的key封装成一个array,最后排序。
这个确实是语言级别的支持,好!@brickyang underscore或者lodash都有对应的union方法
@brickyang 赞一个,请问最新版支持set了吗
@captainblue2013 已经内置支持 https://nodejs.org/en/docs/es6/
好吧 看大家这么热情,我最后采用的方案是: