Ira*_*kli 5 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" ... }
Run Code Online (Sandbox Code Playgroud)
那我怎么能改变元素的位置呢?例如,而不是
("element1", "element2", "element3","element4")
to be
("element4", "element2", "element3","element1")
or
("element1", "element4", "element3","element2")
Run Code Online (Sandbox Code Playgroud)
首先,正确构建数组:
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'....}
}
Run Code Online (Sandbox Code Playgroud)
然后交换:
var tmp = array['element2'];
array['element2'] = array['element1'];
array['element1'] = tmp;
Run Code Online (Sandbox Code Playgroud)
您在问题中发布的内容不是数组,它甚至不是有效的 javascript 语法。由于您询问顺序,我假设您没有使用对象,因为 javascript 中的对象没有保证的顺序。
话虽如此,我将假设您有一个这样声明的数组:
var testArray = [{ ... }, { ... }, { ... }];
Run Code Online (Sandbox Code Playgroud)
要交换两个元素,您只需要一个通用的交换函数:
var swap = function(theArray, indexA, indexB) {
var temp = theArray[indexA];
theArray[indexA] = theArray[indexB];
theArray[indexB] = temp;
};
swap(testArray, 0, 1);
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/jbabey/gRVn5/