我試圖遍歷for循環來對數組進行5次排序。For循環將所有對象值設置爲最後一個實例
let sortedCities = {};
for (let i = 0; i < 5; i++) {
sortedCities[i] = darkSkyHelper.sortCities(info,unsortedCities,i);
console.log(sortedCities[i]);
}
console.log(sortedCities);
static sortCities(info, cities, day) {
let sortedCities = cities.sort(function(a,b) {
return info[b].daily.data[day].precipProbability - info[a].daily.data[day].precipProbability;
})
return sortedCities;
}
第一的console.log顯示每個循環中的期望的輸出,而第二顯示器與每個對象值等於從環路
["cin", "cle", "col", "nya", "laa", "was", "tex"]
["was", "nya", "cle", "cin", "col", "laa", "tex"]
["cle", "cin", "was", "nya", "laa", "col", "tex"]
["laa", "col", "cle", "cin", "was", "nya", "tex"]
["col", "tex", "cle", "laa", "cin", "was", "nya"]
Object {..}
0: Array[7]
0: "col"
1: "tex"
2: "cle"
3: "laa"
4: "cin"
5: "was"
6: "nya"
length: 7
__proto__: Array[0]
1: Array[7]
0: "col"
1: "tex"
2: "cle"
3: "laa"
4: "cin"
5: "was"
6: "nya"
...
你有五個陣列,而是通過一個在你的代碼('this.state.days'),你只循環。如果您需要更多幫助,請加入[mcve]。 –
聽起來像'darkSkyHelper.sortCities'每次都會對同一個數組返回一個引用,只是按不同方式排序。因此'sortedCities'中的每個元素都是相同的數組。 –
請參閱[如何排序數組而不改變原始數組]?(http://stackoverflow.com/questions/9592740/how-can-you-sort-an-array-without-mutating-the-original-array ) – JJJ