如何在Javascript中重新排序Array中的项目?

时间:2016-09-30 19:55:34

标签: javascript arrays

我有一个像这样的数组

var list = [ 'dog', 'cat', 'horse' 'rabbit'] 

现在,我要删除数组中的一个项目,cat。

list.splice(1, 1) 

现在我的数组看起来像这样

list = [ 'dog', 'horse', 'rabbit' ]

我想要做的是根据删除的项目重新排序,例如

list = [ 'horse', 'rabbit', 'dog']

我如何在Javascript中实现这一目标?

5 个答案:

答案 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

jsFiddle