我们可以简单地使用array.sort()(该数组包含字母表),但这将对整个数组进行排序。但我只是想像这样对数组的一部分进行排序:
让我们假设array = ["c" , "d" , "b" , "f" , "a" , "e"]
。现在,我不想对其进行完全排序,而是将其从索引2
排序到5
,因此array
变为["c" , "d" , "a" , "b" , "e" , "f"]
。
Array.prototype
中是否有任何方法可以执行此操作?
注意:我可以编写一个自定义函数来解决这个问题,但我正在避免它。也许我可以快速找到解决方案......
答案 0 :(得分:1)
没有可用的功能完全符合您的要求。
要实现您想要的目标,您必须执行以下操作:
var array = ["c", "d", "b", "f", "a", "e"];
var array1 = array.splice(2, 4);
array1.sort();
array = array.concat(array1);
console.log(array);

答案 1 :(得分:0)
试试这个
var arr = ["c" , "d" , "b" , "f" , "a" , "e"];
var tmpArr = arr.slice(2,5);
tmpArr.sort();
arr = arr.slice(0,2).concat(tmpArr).concat(arr.slice(5));
document.body.innerHTML += JSON.stringify(arr,0,4);
答案 2 :(得分:0)
数组原型方法的完整列表如下:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype。
我能找到的最接近的东西是使用Array.slice来获得3个数组:要排序的元素之前的元素,要排序的元素以及要排序的元素之后的元素。然后使用Array.sort对所需元素进行排序。最后用Array.concat将数组粘合在一起。
答案 3 :(得分:0)
.slice()
将是不错的选择:
var arr = ["c" , "d" , "b" , "f" , "a" , "e"];
var o = arr.slice(0, 2); // take the first two out
var a = arr.slice(-4).sort(); // now slice back and sort it
var n = o.concat(a); // concat the two arrarys and return it.
document.querySelector('pre').innerHTML = JSON.stringify(n, 0, 0);
<pre></pre>