CNode

有没有什么办法将[1,2,3]和[2,4,5]很快的拼接成[1,2,3,4,5]

问答
Ddaileimail发布于11 年前最后回复11 年前13 回复6693 浏览0 收藏

不要for循环。。

查看回复

回复 (13)

D
daileimail#1·11 年前

找到了 concat

M
MiguelValentine#2·11 年前
引用 daileimail找到了 concat

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

H
hbin#3·11 年前

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

Y
youyudehexie#4·11 年前

参考 lodash 里面 union api。

W
webmaomao#5·11 年前

先concat 再去重

L
LiangCY#6·11 年前

或者用underscore的_.union

T
TossShinHwa#7·11 年前
const a = [1, 2, 3];
const b = [2, 4, 5];
const c = [...a, ...b];
console.log(c);
B
brickyang#8·11 年前

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 中就可以跑出来)

J
joney-pinkman#9·11 年前

先做字典,将两个array中各个索引的值作为key遍历一遍,然后直接遍历这个object的key封装成一个array,最后排序。

B
brickyang#12·11 年前

@captainblue2013 已经内置支持 https://nodejs.org/en/docs/es6/

D
daileimail#13·11 年前

好吧 看大家这么热情,我最后采用的方案是:

		var result = [1,2,3,4]
		result = result.concat([2,3,4,5]);
        var set = new Set(result);
        var array = Array.from(set);
参与回复
登录后即可参与回复。登录