【问题标题】:JavaScript Unshift EACH array elementJavaScript Unshift EACH 数组元素
【发布时间】:2015-05-25 06:08:47
【问题描述】:

我有两个包含对象的数组。 arr1arr2。如果我将arr1 取消移位以包含arr2 的元素,则这些元素不会单独附加到arr1 中,而是将整个数组(arr2)附加在开头,例如:

arr1 = [{ele:1}, {ele:2}]
arr2 = [{ele:3}, {ele:4}]

我得到:arr1 = [[{ele:3}, {ele:4}], {ele:1}, {ele:2}]

注意里面的整个数组而不是它的对象。

我要:arr1 = [{ele:3}, {ele:4}, {ele:1}, {ele:2}]

我的数组是 ko.observableArray(),也许这会有所不同?

【问题讨论】:

  • 好吧,unshift 只是简单地将值添加到数组中。如果你取消一个数组,你只需将数组作为第一个元素插入。
  • @FelixKling 是否有另一种方法可以在不循环的情况下将数组的所有元素附加到另一个数组中?
  • 是的,正如 X 先生所展示的那样。

标签: javascript jquery arrays knockout.js


【解决方案1】:

你去吧:

[].unshift.apply(arr1, arr2);

【讨论】:

  • 很好的答案,你必须看到这个文档JS Apply
  • 解释将使答案对 OP 和未来的访问者更有用。
【解决方案2】:

也许这会简单一些

let arr1 = [{ ele: 1 }, { ele: 2 }];
let arr2 = [{ ele: 3 }, { ele: 4 }];
for (const iterator of arr2) {
  arr1.unshift(iterator);
}

【讨论】:

    猜你喜欢
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多