var _txtString = ":un:-:un:-:deux:-:deux:-:deux:-:trois:-:trois:" ;
var _array = ["un", "deux", "trois"] ;
var _items = new Array();
for (var t =0; t < _array.length; t++) {
found = _txtString.match(new RegExp(':' + _array[t]+ ':', 'g'));
_items[t] = parseInt(found.length);
//_items.sort();
document.write("<br />" + _items[t] + " " + _array[t]);
}
嗨, 當我運行這段代碼,顯示的結果是正確計算:爲什麼sort()函數更改此數組中的數值的值?
2 un
3 deux
2 trois
但是,當我取消排序()線,數是錯誤的:
2 un
3 deux
3 trois <=
我想要的是對數值返回的結果進行排序。我的理解是,sort()函數改變了實際值?!任何線索爲什麼?
謝謝
謝謝,只是對你的帖子的評論:在你的第二行啓用排序時,它不是2,2,3,就好像它只是改變順序。它是2,3,3。計數不僅僅是按照不同的順序:它們被改變了。編輯:我發佈此評論時沒有看到您的更新。 – Benj
不,它是'2,2,3'!添加一個console.log行並查看它包含的內容。 '_items [t] = parseInt(found.length); console.log(「before」,_ items.join()); _items.sort(); console.log(「after」,_ items.join());' – epascarello
我喜歡你如何使用push方法將值推入對象。更乾淨。韓國社交協會。 – Benj