有没有什么办法将[1,2,3]和[2,4,5]很快的拼接成[1,2,3,4,5]
不要for循环。。
13 回复
找到了 concat
@daileimail 你拼出来的是123245. 不消重复值
参考 lodash 里面 union api。
先concat 再去重
或者用underscore的_.union
const a = [1, 2, 3];
const b = [2, 4, 5];
const c = [...a, ...b];
console.log(c);
ES6 的 Set 结构就是干这个的。
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 中就可以跑出来)
先做字典,将两个array中各个索引的值作为key遍历一遍,然后直接遍历这个object的key封装成一个array,最后排序。
这个确实是语言级别的支持,好!@brickyang underscore或者lodash都有对应的union方法
@brickyang 赞一个,请问最新版支持set了吗
好吧 看大家这么热情,我最后采用的方案是:
var result = [1,2,3,4]
result = result.concat([2,3,4,5]);
var set = new Set(result);
var array = Array.from(set);