[英]Javascript change place of array 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")
首先,正确构建对象:
array = {
'element1' : {par1: 'value1', par2: 'value2', par3: 'value3'....},
'element2' : {par1: 'value1', par2: 'value2', par3: 'value3'....},
'element3' : {par1: 'value1', par2: 'value2', par3: 'value3'....},
'element4' : {par1: 'value1', par2: 'value2', par3: 'value3'....}
}
然后交换:
var tmp = array['element2'];
array['element2'] = array['element1'];
array['element1'] = tmp;
您在问题中发布的内容不是数组,它甚至不是有效的 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);
arr = [0,1,2,3];
a = arr[3];
arr[3] = arr[0];
arr[0] = a;
您可以将其添加为数组原型,如下所示:
Array.prototype.swap = function (index1, index2) {
if (index1 <= this.length && index2 <= this.length) {
var temp = this[index2];
this[index2] = this[index1];
this[index1] = temp;
}
};
我只想写一个交换函数。
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"
你现在可以这样做:
let list = [1,2,3,4];
[list[1],list[3]] = [list[3],list[1]];
//Result: [1,4,3,2]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.