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
执行合并;但它只返回唯一值。