在没有临时变量的数组中交换项目

时间:2016-06-20 09:48:20

标签: javascript jquery arrays

您好我有关注对象:

        myList = {
            Items: [
                {
                    ID: 1,
                    Name: "last"
                },
                {
                    ID: 2,
                    Name: "before last"
                },
                {
                    ID: 3,
                    Name: "second"
                }, 
                {
                    ID: 4,
                    Name: "first"
                }
            ]
        };

我的数组中的顺序现在为:1,2,3和4.

现在我想将ID == 4的项目与第一项(ID == 1)交换,ID == 3的项目与第二项(ID == 2)交换。有没有办法做到这一点没有一些临时变量?所以我可以说,把ID == 4的项目放在第一个索引上,另一个会自动向下移动而不会被覆盖?如果没有临时变量没有任何方式,我应该如何利用这些临时变量做到最好?

谢谢和欢呼

3 个答案:

答案 0 :(得分:3)

myList = {
            Items: [
                {
                    ID: 1,
                    Name: "last"
                },
                {
                    ID: 2,
                    Name: "before last"
                },
                {
                    ID: 3,
                    Name: "second"
                }, 
                {
                    ID: 4,
                    Name: "first"
                }
            ]
        };
console.log(myList);

myList = {Items: myList.Items.reverse()};

console.log(myList);

答案 1 :(得分:2)

你可以使用带有元素的新数组,你想交换。

myList.Items = [myList.Items[3], myList.Items[2], myList.Items[1], myList.Items[0]];

或使用Array#reverse

  

reverse() 方法可以反转数组。第一个数组元素成为最后一个,最后一个成为第一个。

myList.Items.reverse();

答案 2 :(得分:1)

试试这个

myList.Items = myList.Items.reverse();

<ul ng-repeat="item in myList.Items |  orderBy:'ID':reverse">