我有一个像这样的数组
var list = [ 'dog', 'cat', 'horse' 'rabbit']
现在,我要删除数组中的一个项目,cat。
list.splice(1, 1)
现在我的数组看起来像这样
list = [ 'dog', 'horse', 'rabbit' ]
我想要做的是根据删除的项目重新排序,例如
list = [ 'horse', 'rabbit', 'dog']
我如何在Javascript中实现这一目标?
答案 0 :(得分:2)
也许是这样的。
var list = [ 'dog', 'cat', 'horse', 'rabbit']
function reorderSlice(index) {
var start = list.slice(0, index)
var end = list.slice(index + 1)
return end.concat(start)
}
console.log(reorderSlice(1))

答案 1 :(得分:0)
如果您希望在删除的元素之后开始新列表,并附加之前的所有项目:
var list = [ 'dog', 'cat', 'horse', 'rabbit'] ;
var itemIndex = 1; // Index of 'cat' (removed item)
list = list.slice(itemIndex+1).concat(list.slice(0,itemIndex));
console.log(list); // ["horse", "rabbit", "dog"]
答案 2 :(得分:0)
这应该这样做。代码将所有项目拼接到第n个位置。然后将它们添加回列表的末尾,但第n项除外。
var removed = list.splice(0, n);
list.push(removed.splice(0, removed.length-1));
答案 3 :(得分:0)
你表达问题的方式很有趣......你可以这样做;
function funkyDeleteItem(a,i){
return a.slice(i+1).concat(a.slice(0,i));
}
var a = [ 'dog', 'cat', 'horse', 'rabbit'],
b = funkyDeleteItem(a,1);
console.log(b);
答案 4 :(得分:-2)
您可以使用Array.sort()
功能根据您使用< =>的标准执行排序。风格功能
var numbers = [4, 2, 5, 1, 3];
numbers.sort(
function(left, right) {
return left - right;
}
);
// returns: 1, 2, 3, 4, 5