繁体   English   中英

遍历Json并追加到对象

[英]Looping through Json and appending to object

我有来自Google Maps的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);

您只需要将对象推入循环内的数组中,这样就可以推入每个对象,而不只是一个对象。 显然,此代码段实际上不会运行,因为我们不在这里获取您的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 = { 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 = { item: array[i] }; // we push each object we define in the loop in to the array second_try.push( obj ); } // we get all the objects in the array console.log( second_try ); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM