Iterate in a javascript subobject with an unknown name -


this question has answer here:

i'm parsong rss news using javascript.. object returned (from yahoo yql) has news inside news object.

normally, it's inside subobject:

news.results.item 

so iterate using:

news.results.item.foreach 

now gets interesting when i'm loading multiple sources.. can return stuff like

news.results.item (array[10]) news.results.entry (array[10]) news.results.banana (array[10]) 

my question is, how can iterate inside these entries when don't know naming returned.. there simple way merge them all? (using jquery fine)

you can loop through of array properties on news.results:

var news = {      results: {          item: ["a", "b", "c"],          entry: ["d", "e", "f"],          banana: ["g", "h", "i"]      }  };  object.keys(news.results).foreach(function(key) {      var value = news.results[key];      if (array.isarray(value)) {          value.foreach(function(entry) {              console.log(entry);          });      }  });

and if you're looking specific , want stop when find it, can use some instead of foreach or nested find (you'll need find polyfill browsers still).

but if want combine them before searching, that's done:

var news = {      results: {          item: ["a", "b", "c"],        entry: ["d", "e", "f"],          banana: ["g", "h", "i"]      }  };  var = [];  object.keys(news.results).foreach(function(key) {      var value = news.results[key];      if (array.isarray(value)) {          all.push.apply(all, value);      }  });  all.foreach(function(entry) {    console.log(entry);  });

(some people use reduce that. think obscures rather aiding reading in cases accumulation value never changes.)


Comments

Popular posts from this blog

aws api gateway - SerializationException in posting new Records via Dynamodb Proxy Service in API -

asp.net - Problems sending emails from forum -