Javascript更改数组元素的位置

时间:2012-09-10 19:29:08

标签: javascript arrays replace nested element

我在javascript中嵌套了这样的数组:

testArray['element1'] = {par1: "value1", par2: "value2" ... }
testArray['element2'] = {par1: "value1", par2: "value2" ... }
testArray['element3'] = {par1: "value1", par2: "value2" ... }
testArray['element4'] = {par1: "value1", par2: "value2" ... }

那么如何更改元素的位置?例如,而不是

("element1", "element2", "element3","element4")
to be
("element4", "element2", "element3","element1")
or
("element1", "element4", "element3","element2")

5 个答案:

答案 0 :(得分:3)

您在问题中发布的内容不是数组,甚至不是有效的javascript语法。既然您询问订单,我会假设您没有使用对象作为javascript中的对象没有保证订单。

话虽这么说,我假设你有一个声明如下的数组:

var testArray = [{ ... }, { ... }, { ... }];

要交换两个元素,您只需要一个通用的交换函数:

var swap = function(theArray, indexA, indexB) {
    var temp = theArray[indexA];
    theArray[indexA] = theArray[indexB];
    theArray[indexB] = temp;
};

swap(testArray, 0, 1);

http://jsfiddle.net/jbabey/gRVn5/

答案 1 :(得分:1)

arr = [0,1,2,3];
a = arr[3];
arr[3] = arr[0];
arr[0] = a;

答案 2 :(得分:1)

您可以将其添加为数组原型,如下所示:

Array.prototype.swap = function (index1, index2) {
    if (index1 <= this.length && index2 <= this.length) {
        var temp = this[index2];
        this[index2] = this[index1];
        this[index1] = temp;
    }
};

答案 3 :(得分:0)

我只是写一个交换函数。

var letters = "abcdefghijklmnopqrstuvwxyz".split("");

function swap(theArray, index1, index2) {
  var temp = theArray[index2];
  theArray[index2] = theArray[index1];
  theArray[index1] = temp;
}

swap(letters, 2, 25); // swap "c" and "z"

答案 4 :(得分:0)

您现在可以:

let list = [1,2,3,4];
[list[1],list[3]] = [list[3],list[1]];

//Result: [1,4,3,2]