2
我練的數據可視化庫d3.js,和我使用的是隨機數據發生器等同於以下內容:爲什麼numberArray.sort()不能在JavaScript中正確地排序數字?
function generateRandomData() {
var i,
data = [];
for (i = 0; i < 100; i += 1) {
data.push(Math.random() * 100);
}
return data;
}
我存儲的價值,並嘗試進行排序,如下所示:
var data = generateRandomData();
data.sort();
不幸的是,排序的數據集沒有完全排序 - 其中一些值實際上是不正確的。例如,我會有數字,如[12,15,18,21,3,18 ...]。排序功能不準確的原因是什麼?
注:我發現了一個合適的解決方案,它解決了我的問題:
data.sort(function (a, b) { return b - a; });
我只是想知道爲什麼排序()是不可靠的。
不幸的是,而正確的(+1),這個不同意在後給出... – 2012-06-27 02:44:21
OP的的'[12,15示例結果的 「結果」 ,18,21,3,18 ...]可能只是一個例子,因爲在該數組上運行sort()(減去橢圓)會導致[12,15,18,18,21,3],這是正確的排序順序,假設所有值都是字符串 – jackwanders
@pst true;我以爲你在質疑答案的有效性 – jackwanders