1
下面是一些重複的問題更新淘汰賽observableArray產生隨機排序結果
places = ["London","Paris","Brussels"];
placeWikis = ko.observableArray([]);
var viewModel = function(){
for (i in places) {
function wikiInit(callback){
this.wikiMarkup = "";
var wikiTitle = places[i].replace(" ", "_");
var wikiURL = "https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles="+places[i];
$.ajax({
type:"GET",
dataType:"jsonp",
async: false,
url: wikiURL,
success: function(result){
callback(result.query.pages[Object.keys(result.query.pages)[0]].extract);
},
error: function(){
}
});
};
wikiInit(function (wikiString) {
var wikiMarkup = "<h4>Wikipedia:</h4>" + "<p>" + wikiString + "</p>";
placeWikis.push(wikiMarkup);
console.log(placeWikis());
});
}
ko.applyBindings(new viewModel(), view);
的問題是每次代碼運行此代碼並返回從源數據,維基百科在這種情況下,結果對於placesWikis()是隨機排列的。我分別加入在不同的<div>
API結果,所以我需要索引的結果是一樣的地方各自的條目索引[]
我想你可能有這個問題的僞裝重複:[元素順序在「for(... in ...)」循環](http://stackoverflow.com/a/280861/419956)?如果訂單很重要,你應該對自己進行排序。 (注意,如果你需要一個* stable *排序,你也應該有一個明確的tiebreaker,因爲在Javascript中的數組排序並不保證是一個穩定的排序 - AFAIK。) – Jeroen
所以我想這意味着沒有簡單的解決方案。大。 – Brushline
爲什麼不呢?如果你從'for..in'變成一個正常的'for'循環,事情應該解決,對嗎? – Jeroen