Javascript 使用jQuery或下划线.js合并对象中多个数组的值

Javascript 使用jQuery或下划线.js合并对象中多个数组的值,javascript,jquery,arrays,underscore.js,Javascript,Jquery,Arrays,Underscore.js,我想将一个对象中多个数组的值合并到一个数组中。 例如: Object: - alpha: Array[3] 0: "vatG4d6mcjKbpfuAm" 1: "xkQrKEsfwuYPkDcdz" 2: "GDg9chZnDGrbLXWGS" - bravo: Array[1] 0: "53LEcQ5MoYXFyvktf" - … 结果应该是: ["vatG4d6mcjKbpfuAm", "xkQrKEsfwuYPkDcdz", "GDg9

我想将一个对象中多个数组的值合并到一个数组中。 例如:

Object:
  - alpha: Array[3]
     0: "vatG4d6mcjKbpfuAm"
     1: "xkQrKEsfwuYPkDcdz"
     2: "GDg9chZnDGrbLXWGS"
  - bravo: Array[1]
     0: "53LEcQ5MoYXFyvktf"
  - …
结果应该是:

["vatG4d6mcjKbpfuAm", "xkQrKEsfwuYPkDcdz", "GDg9chZnDGrbLXWGS", "53LEcQ5MoYXFyvktf"]
我通过对元素进行简单的for循环来实现这一点,但我担心性能。使用简单的jQuery或underline.js函数可以实现这一点吗

任何帮助都将不胜感激。

有了jquery,您可以使用

可以使用下划线

使用jquery,您可以使用

可以使用下划线


没有必要为此使用库

对于两个阵列,请使用:

对于两个以上的阵列,请使用循环:

再次使用
concat

var arr = [];
for (var k in obj) {
  arr = arr.concat(obj[k]);
}
或者使用
push.apply方法

var arr = [];
for (var k in obj) {
  arr.push.apply(arr, obj[k]);
}

使用此信息创建函数,这样就不需要重复代码:

function mergeObjectArrays(obj) {
  var arr = [];
  for (var k in obj) {
    arr.push.apply(arr, obj[k]);
  }
  return arr;
}

var arr = mergeObjectArrays(obj);

没有必要为此使用库

对于两个阵列,请使用:

对于两个以上的阵列,请使用循环:

再次使用
concat

var arr = [];
for (var k in obj) {
  arr = arr.concat(obj[k]);
}
或者使用
push.apply方法

var arr = [];
for (var k in obj) {
  arr.push.apply(arr, obj[k]);
}

使用此信息创建函数,这样就不需要重复代码:

function mergeObjectArrays(obj) {
  var arr = [];
  for (var k in obj) {
    arr.push.apply(arr, obj[k]);
  }
  return arr;
}

var arr = mergeObjectArrays(obj);

您可以使用纯javascript对数组进行如下操作:

var obj =
{
    alpha: ["vatG4d6mcjKbpfuAm", "xkQrKEsfwuYPkDcdz", "GDg9chZnDGrbLXWGS"],
    bravo: ["53LEcQ5MoYXFyvktf"]
};
var obj.charlie = obj.alpha.concat(obj.bravo);

// obj.charlie = ["vatG4d6mcjKbpfuAm", "xkQrKEsfwuYPkDcdz", "GDg9chZnDGrbLXWGS", "53LEcQ5MoYXFyvktf"]

您可以使用纯javascript对数组进行如下操作:

var obj =
{
    alpha: ["vatG4d6mcjKbpfuAm", "xkQrKEsfwuYPkDcdz", "GDg9chZnDGrbLXWGS"],
    bravo: ["53LEcQ5MoYXFyvktf"]
};
var obj.charlie = obj.alpha.concat(obj.bravo);

// obj.charlie = ["vatG4d6mcjKbpfuAm", "xkQrKEsfwuYPkDcdz", "GDg9chZnDGrbLXWGS", "53LEcQ5MoYXFyvktf"]

一个简单的循环可能比任何库调用都更有效。衡量性能而不是关心性能。事实上,jQuery的
merge
正是这样做的。它只是在提供的数组中循环:
merge:function(first,second){for(;jA简单循环可能比任何库调用都更有效。测量性能而不是关心性能。事实上,jQuery的
merge
正是这样做的。它只是在提供的数组中循环:
merge:function(first,second){for(;j
.union
执行合并;但它只返回唯一值。
.union
执行合并;但它只返回唯一值。