有没有什么办法将[1,2,3]和[2,4,5]很快的拼接成[1,2,3,4,5]
发布于 9 年前 作者 daileimail 5614 次浏览 最后一次编辑是 8 年前 来自 问答

不要for循环。。

13 回复

找到了 concat

@daileimail 你拼出来的是123245. 不消重复值

这种问题不应该出现在社区,提问者应该学会 Google查文档

参考 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);
回到顶部