【问题标题】:How merge two arrays in javascript? [duplicate]如何在javascript中合并两个数组? [复制]
【发布时间】:2018-09-10 07:20:49
【问题描述】:

有两个数组:

a1 = [0, 2, 4, 6, 8];
a2 = [1, 3, 5, 7, 9];

我是如何得到这个的:

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

我想使用 RxJs 或其他。

如果值不是数字,比如对象。

 a1 = [A, C, E, G, I]; 
 a1 = [{'name': 'Lucy'}, {'name': 'Lily'}, {'name': 'Jerry'}, {'name': 'Tom'}, {'name': 'Smith'}]

 a2 = [B, D, F, H, J]; 
 a2 = [{'name': 'Jack'}, {'name': 'John'}, {'name': 'Anan'}, {'name': 'Bob'}, {'name': 'Dav'}]

 a = [A, B, C, D, E, F, G, H, I, J];

【问题讨论】:

  • a1.concat(a2)
  • a1.concat(a2).sort() 其实
  • a1.concat(a2).sort();
  • 我在打字的时候... ;)
  • 你为什么投-1票?

标签: javascript rxjs


【解决方案1】:
[...a1,...a2].sort((a,b) => a-b)

这是 ES6 语法。

【讨论】:

  • 这应该如何处理对象?!?
【解决方案2】:

使用concat()sort()

a1 = [0, 2, 4, 6, 8];
a2 = [1, 3, 5, 7, 9];

a = a1.concat(a2).sort();

console.log(a)

【讨论】:

  • 这应该如何处理对象?!
  • 他编辑了它的问题。以前从未谈论过对象
  • 我只是以数字为例......
【解决方案3】:
  const result = [];

  for(var i = 0; i < arr1.length && i < arr2.length; i++)
    result.push(arr1[i], arr2[i]);

  result push(...arr1.slice(i), ...arr2.slice(i));

这会合并两个数组(arr1arr2),每个数组取一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-12
    • 2010-12-07
    • 1970-01-01
    • 2017-02-17
    • 2018-09-13
    • 2016-03-08
    相关资源
    最近更新 更多