javascript array sorting
barvalues是我传递给函数的数组。在这个函数中,我有:
1 2 3 4 5 6 | alert(barValues); var sortedBarValues = barValues; sortedBarValues.sort(function(a,b){return b - a}); alert(barValues); |
我试着用两个数组来结束。barvalues是原始数组,sortedbarvalues是该数组的副本,现在已排序。
但是,通过这两个警报,我发现barvalues也在被排序。为什么会这样?创建数组副本以便将其与原始数组分开排序的正确方法是什么?
使用语句
你可以用
记住,使用slice方法在多维数组上无法正常工作。复制多维数组有些困难,但jquery的extend函数可以帮您完成。
您可以在本文中看到关于如何复制数组的信息。
当您将
在对数组进行排序之前,您需要复制一个数组,这样另一个数组就不会受到影响。
1 2 | var sortedBarValues = Array.apply({}, barValues); sortedBarValues.sort(function(a, b) { return b - a; }); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <html> <body> JavaScript Array Sort <p> The lowest number is <span id="demo"></span>. </p> var points = [78, 78,99, 2, 5, 25, 10]; document.getElementById("demo").innerHTML = myArrayMin(points); function myArrayMin(arr) { var len = arr.length var min = Infinity; while (len--) { if (arr[len] < min) { min = arr[len]; } } return min; } </body> </html> |
输出为2