对于这样Javascript,合并两个物品,每个物品1400个,最快的方式?
var arr = [];
arr[0] = {};
arr[0].p1 = [];
arr[0].p1[0] = 'hola arr0 p1';
arr[0].p2 = [];
arr[0].p2[0] = 'hola arr0 p2';
arr[1] = {};
arr[1].p1 = [];
arr[1].p1[0] = 'hola arr1 p1';
arr[1].p2 = [];
arr[1].p2[0] = 'hola arr1 p2';
arr[2] = {};
arr[2].p1 = [];
arr[2].p1[0] = 'hola arr2 p1';
arr[2].p3 = [];
arr[2].p3[0] = 'hola arr2 p3';
arr[3] = {};
arr[3].p2 = [];
arr[3].p2[0] = 'hola arr3 p2';
arr[3].p3 = [];
arr[3].p3[0] = 'hola arr3 p3';
arr[4] = {};
arr[4].p1 = [];
arr[4].p1[0] = 'hola arr4 p1';
arr[4].p4 = [];
arr[4].p4[0] = 'hola arr4 p4';
我想,这样在最后我有一个单一的对象凝结的所有信息合并对象的结构。 此代码的工作:
for (let a=1;a<arr.length; a++){
for (let i in arr[0]) {
for (let j in arr[a]) {
if (i === j) {
arr[0][i][a] = arr[a][j][0];
delete arr[a][j];
}
}
}
for (let j in arr[a]) {
arr[0][j] = [];
arr[0][j][a] = arr[a][j][0];
delete arr[a][j];
}
}
console.log(arr)
而且我得到我想要的输出。
https://jsfiddle.net/jb73tur4/
的问题是,在我的实际代码ARR [0]具有1500项和ARR [1]具有1300层的密钥。通过这两个循环意味着1500x1300次迭代,这会冻结浏览器。
有没有办法做到这一点?以某种方式加速这个?
但它是一个好主意吗?这个尺寸是否与javascript兼容? – Gerard