我想将一个对象中多个数组的值合并到一个数组中。例如:
Object:
- alpha: Array[3]
0: "vatG4d6mcjKbpfuAm"
1: "xkQrKEsfwuYPkDcdz"
2: "GDg9chZnDGrbLXWGS"
- bravo: Array[1]
0: "53LEcQ5MoYXFyvktf"
- …
结果应为:
["vatG4d6mcjKbpfuAm", "xkQrKEsfwuYPkDcdz", "GDg9chZnDGrbLXWGS", "53LEcQ5MoYXFyvktf"]
我通过对元素进行简单的for循环迭代来完成此操作,但是我担心性能。使用简单的jQuery或underscore.js函数可以实现吗?
任何帮助将不胜感激。
无需为此使用库。
对于两个数组,请使用concat
:
var arr = obj.alpha.concat(obj.bravo);
对于两个以上的数组,请使用循环:
要么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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句