我正在學習JavaScript,無法找出下面我的代碼中的問題。我想我誤解了數組是如何工作的。排序數組的問題
問題是,警報數組實際上沒有排序。我會很感激這方面的任何見解:
HTML:
<html>
<head>
<title>
Test 1
</title>
<script src="http://code.jquery.com/jquery-latest.js" type=
"text/javascript">
</script>
</head>
<body>
<div class="items">
<ul>
<li>
<a href="#" id="1">Link 1</a>
</li>
<li>
<a href="#" id="2">Link 2</a>
</li>
<li>
<a href="#" id="3">Link 3</a>
</li>
<li>
<a href="#" id="4">Link 4</a>
</li>
</ul>
</div>
</body>
</html>
的Javascript:
var clickedLinks = [];
var passedItems = [];
// Collect clicked link IDs into an array and pass the array as an argument to shoplist()
$('.items a').click(function() {
if (clickedLinks.indexOf(this.id) != -1) {
var linkIndex = clickedLinks.indexOf(this.id);
clickedLinks.splice(linkIndex, 1);
} else {
clickedLinks.push(this.id);
}
shoplist(clickedLinks);
});
function shoplist(ids) {
passedItems.push(ids.slice());
alert(passedItems.sort());
}
重現步驟:
- 單擊鏈接2
- 單擊鏈接1
預期結果: 1,2,2
實際結果: 2,2,1
事情我已經嘗試:
function shoplist(ids) {
passedItems.push(ids.slice());
var newpi = passedItems.slice();
alert(newpi.sort());
}
您有一個數組的陣列。嘗試不推送到傳遞的項目,但只排序點擊鏈接 – mplungjan