javascript - 不使用 concat 方法添加两个数组

标签 javascript

这是我想做的一个例子

function test(r){
  var arr = ['d','e','f'];
  r.push(arr);
  /*
  More Code
  */
  return r;
}
var result = test(['a','b','c']);
alert(result.length);//I want this to alert 6

我需要做的是传入一个数组并将其他数组附加到它的末尾,然后返回该数组。由于通过引用传递,我不能使用 array.concat(array2);。有没有一种方法可以做到这一点,而无需使用类似 for 循环的方法来逐个添加元素。我尝试了 r.push(arr.join()); 之类的方法,但这也不起作用。另外,我想要在数组中包含对象的选项,所以 r.push(arr.join()); 不能很好地工作。

最佳答案

>>> var x = [1, 2, 3], y = [4, 5, 6];
>>> x.push.apply(x, y) // or Array.prototype.push.apply(x, y)
>>> x
[1, 2, 3, 4, 5, 6]

或者使用 destructuring你现在可以这样做了

//generate a new array
a=[...x,...y];
//or modify one of the original arrays
x.push(...y);

关于javascript - 不使用 concat 方法添加两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5240335/

相关文章:

javascript - 如何在测试完成中使用 javascript 直接在 IE (11) 中运行文件

javascript - iOS (iPad) 上的 iframe 内容裁剪问题

javascript - 保持浏览器处于加载状态直到 onLoad/Ajax 结束

javascript - 在 Node.js 中将 Buffer 转换为 ReadableStream

javascript - 如何 trim jsf xhtml 中的字符串?

javascript - 检查 JavaScript 中字符串集合中是否存在字符串的最快方法是什么?

javascript - 无法通过 eval() 函数更新变量

javascript - 凯撒密码移位javascript问题

javascript - 如何.abort() 一个ajax 文件上传?

javascript - jQuery .NOT() $(this) 或 $(this).parent()