2017-08-03 52 views
1

我有這個來自Google地圖的JSON響應,保存爲.json文件。這是對附近學校的搜索。通過Json循環並追加到對象

我只想提取學校的名稱和位置,並將它們保存到elemSchoolsArr變量中供以後使用。

我不知道爲什麼我下面的代碼沒有循環通過json響應,檢查elemSchoolsObj只顯示一個對象,而不是10,我想稍後推送到elemSchoolsArr

var elemSchoolsArr = []; 
var elemSchoolsObj = {}; 

$.getJSON('elementary-schools.json', function(data){ 
    for (var i = 0; i < 10; i++) { 
    elemSchoolsObj.title = data.results[i].name; 
    elemSchoolsObj.location = data.results[i].geometry.location; 

    } 
}); 

elemSchoolsArr.push(elemSchoolsObj); 

回答

0

您只需將對象推入循環內部的數組,以便每個對象都被推入,而不僅僅是一個。很明顯,這段代碼實際上並不會運行,因爲我們沒有在這裏獲得你的JSON。

var elemSchoolsArr = []; 
 

 
$.getJSON('elementary-schools.json', function(data){ 
 
    for (var i = 0; i < 10; i++) { 
 
    var elemSchoolsObj = {}; 
 
    elemSchoolsObj.title = data.results[i].name; 
 
    elemSchoolsObj.location = data.results[i].geometry.location; 
 
    elemSchoolsArr.push(elemSchoolsObj); 
 
    } 
 
});

這裏有一個功能例如...

var array = ["a", "b", "c", "d", "e"]; 
 
var first_try = []; 
 
var second_try = []; 
 

 
for(var i = 0; i < array.length; i++){ 
 
    // we define our object in the loop but don't add it to the array 
 
    var obj = { 
 
    \t item: array[i] 
 
    }; 
 
} 
 

 
// we push one object in to the array 
 
first_try.push(obj); 
 

 
// we get one object in the array 
 
console.log(first_try); 
 

 
for(var i = 0; i < array.length; i++){ 
 
    // we define our object in the loop 
 
    var obj = { 
 
    \t item: array[i] 
 
    }; 
 
    // we push each object we define in the loop in to the array 
 
\t second_try.push(obj); 
 
} 
 

 
// we get all the objects in the array 
 
console.log(second_try);

+0

太謝謝你了。您的解決方案完美運作 – CryptoPsyche

+0

很高興我能幫忙:) – sauntimo