JS 数组拼接

有个JS数组拼接的问题,一提到数组拼接,我们第一次时间想到的concat,

var arr1 = [1,2,3];
var arr2 = [4,5,6];
document.write(arr1.concat(arr2));;//1,2,3,4,5,6

concat拼接是把第二个数组的追加到第一个数组后面。

现在有个需求就是把第二个数组拼接到第一个数组前面

var arr1 = [1,2,3];
var arr2 = [4,5,6];

结果要:4,5,6,1,2,3 

如果有第三个数组 var arr3 = [7,8,9]

结果是:7,8,9,4,5,6,1,2,3

以此类推


我用我已知的JS方法我没解决到问题,请问哪位经验丰富的朋友提供下思路,谢谢
阅读 8.6k
8 个回答

arr2.concat(arr1)不是行了。。

有个叫对象展开运算符的东西。
ans = [...c, ...b, ...a]

不知道你是不是想要这种的

Array.prototype.shiconcat = function (arr) {
    return arr.concat(this)
}
var a = [1,2,3],b = [4,5,6],c= [7,8,9];
a.shiconcat(b).shiconcat(c);  //7,8,9,4,5,6,1,2,3
var arr1 = [1,2,3];
var arr2 = [4,5,6];
document.write(arr2.concat(arr1));

颠倒一下不就行了

var a = [1,2,3],b = [4,5,6],c= [7,8,9];
var target = c.concat(b, a)

// 假设有n个数组需要concat
var arrs = [a, b, c, d, e]
var target = arrs.pop()
target = target.concat(...arrs.reverse())

js中的unshift() 方法将一个或多个元素添加到数组的开头,并返回新数组的长度。

clipboard.png

[...arr3, ...arr2, ...arr1]
Array.prototype.reverseConcat = function(arr){
    return arr.concat(this)
}

a.reversConcat(b);//[456123]

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏