Javascript:在_.each循环中对解析的JSON进行排序

时间:2015-02-08 15:07:53

标签: javascript json parsing sorting

var Bible = JSON.parse( fs.readFileSync(bible.json, 'utf8') ); _.each(Bible, function (b, Book) { return Book; });

这将输出圣经中的每本书名(例如Genesis,Exodus,Leviticus等)。问题是JSON文件中的书籍不合规。我试图以各种方式对它们进行排序,但在_.each循环中似乎没有任何可能。当我这样做时:

correctlyOrderedList.indexOf(Book) - correctlyOrderedList.indexOf(b);

它正确地返回了每个索引的索引,但据我所知,我仍然无法对每个循环中的索引进行排序。有没有办法在_.each循环之前对它进行排序,还是有办法对其进行排序?

1 个答案:

答案 0 :(得分:1)

你无法在each内进行排序,因为那太迟了。 但您可以在使用_.each之前进行排序:

var Bible = JSON.parse( fs.readFileSync(bible.json, 'utf8') );
Bible.sort(); // sorts in place
_.each(Bible, function (b, Book) { 
  return Book; 
});

或者将排序后的值作为参数传递给each

var Bible = JSON.parse( fs.readFileSync(bible.json, 'utf8') );
_.each(Bible.sort(), function (b, Book) { 
  return Book; 
});