對於這樣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