Javascript:在 _.each 循环中对已解析的 JSON 进行排序
Javascript: Sorting Parsed JSON within _.each loop
var Bible = JSON.parse( fs.readFileSync(bible.json, 'utf8') );
_.each(Bible, function (b, Book) {
return Book;
});
这会输出圣经中每本书的名称(例如创世记、出埃及记、利未记等)。问题是 JSON 文件中的书籍顺序不对。我尝试以各种方式对它们进行排序,但在 _.each 循环内似乎没有任何可能。当我这样做时:
correctlyOrderedList.indexOf(Book) - correctlyOrderedList.indexOf(b);
它正确地返回了每个索引,但据我所知,我仍然无法在 .each 循环中对它们进行排序。有没有办法在 _.each 循环之前对其进行排序,或者有没有办法在其中对其进行排序?
您不能在 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;
});
var Bible = JSON.parse( fs.readFileSync(bible.json, 'utf8') );
_.each(Bible, function (b, Book) {
return Book;
});
这会输出圣经中每本书的名称(例如创世记、出埃及记、利未记等)。问题是 JSON 文件中的书籍顺序不对。我尝试以各种方式对它们进行排序,但在 _.each 循环内似乎没有任何可能。当我这样做时:
correctlyOrderedList.indexOf(Book) - correctlyOrderedList.indexOf(b);
它正确地返回了每个索引,但据我所知,我仍然无法在 .each 循环中对它们进行排序。有没有办法在 _.each 循环之前对其进行排序,或者有没有办法在其中对其进行排序?
您不能在 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;
});