你能改進嗎? (聲明多個數組,如果條件和推送太多)有什麼辦法可以將所有這些組合在一起?如何用更好的方式寫這個javascript方法?
prepareGroupMarkers: function(groups){
var groupLevels = new Array();
var level1 = [],
level2 = [],
level3 = [],
level4 = [],
level5 = [];
for(var i = 0; groups.length > i; i++){
if(groups[i].level == 1) {
level1.push(groups[i]);
} else if(groups[i].level == 2) {
level2.push(groups[i]);
} else if(groups[i].level == 3) {
level3.push(groups[i]);
} else if(groups[i].level == 4) {
level4.push(groups[i]);
} else if(groups[i].level == 5) {
level5.push(groups[i]);
}
}
var pluginArrayArg = new Array();
pluginArrayArg.push(level1);
pluginArrayArg.push(level2);
pluginArrayArg.push(level3);
pluginArrayArg.push(level4);
pluginArrayArg.push(level5);
var jsonArray = JSON.parse(JSON.stringify(pluginArrayArg))
return jsonArray;
},
感謝您的回覆!
這是我的場景,我在我的JSON中有一個巨大的值集合(它基於如下圖所示的樹結構構建)。上面的方法是爲了獲得每個級別的組。實際的json結構非常龐大,它將有> 20K條記錄。
groups":[
{
"latitude": 10.44333333333,
"longitude": 77.55,
"level": 1,
...
...
...
},
{
"latitude": 16.347745,
"longitude": 77.684620,
"level": 4,
...
...
...
},
{
"latitude": 16.34333333333,
"longitude": 77.45,
"level": 1,
...
...
...
},
{
"latitude": 16.34333333333,
"longitude": 77.45,
"level": 2,
...
...
...
},
...
...
...
這將是真正有用的,如果解決方案具有更好的性能,因爲我們正在處理的數據確實非常大。
你爲什麼一切都分手了,如果你剛剛結束了在同一陣列中推動一切反正呢?要根據級別進行排序? –