use*_*421 1 javascript arrays jquery underscore.js
我想将一个对象中的多个数组的值合并到一个数组中.例如:
Object:
- alpha: Array[3]
0: "vatG4d6mcjKbpfuAm"
1: "xkQrKEsfwuYPkDcdz"
2: "GDg9chZnDGrbLXWGS"
- bravo: Array[1]
0: "53LEcQ5MoYXFyvktf"
- …
Run Code Online (Sandbox Code Playgroud)
结果应该是:
["vatG4d6mcjKbpfuAm", "xkQrKEsfwuYPkDcdz", "GDg9chZnDGrbLXWGS", "53LEcQ5MoYXFyvktf"]
Run Code Online (Sandbox Code Playgroud)
我用一个简单的for循环迭代元素来做到这一点,但我关注性能.这可以通过简单的jQuery或underscore.js函数实现吗?
任何帮助将不胜感激.
And*_*ndy 10
没有必要为此使用库.
对于两个阵列使用concat:
var arr = obj.alpha.concat(obj.bravo);
Run Code Online (Sandbox Code Playgroud)
对于两个以上的数组,使用循环:
要么concat再次
var arr = [];
for (var k in obj) {
arr = arr.concat(obj[k]);
}
Run Code Online (Sandbox Code Playgroud)
或使用该push.apply方法
var arr = [];
for (var k in obj) {
arr.push.apply(arr, obj[k]);
}
Run Code Online (Sandbox Code Playgroud)
使用此信息创建一个函数,这样您就不需要重复代码:
function mergeObjectArrays(obj) {
var arr = [];
for (var k in obj) {
arr.push.apply(arr, obj[k]);
}
return arr;
}
var arr = mergeObjectArrays(obj);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9290 次 |
| 最近记录: |