admin管理员组文章数量:1193760
I have nested array in javascript like this:
testArray['element1'] = {par1: "value1", par2: "value2" ... }
testArray['element2'] = {par1: "value1", par2: "value2" ... }
testArray['element3'] = {par1: "value1", par2: "value2" ... }
testArray['element4'] = {par1: "value1", par2: "value2" ... }
so how can I change place of element? for example instead of
("element1", "element2", "element3","element4")
to be
("element4", "element2", "element3","element1")
or
("element1", "element4", "element3","element2")
I have nested array in javascript like this:
testArray['element1'] = {par1: "value1", par2: "value2" ... }
testArray['element2'] = {par1: "value1", par2: "value2" ... }
testArray['element3'] = {par1: "value1", par2: "value2" ... }
testArray['element4'] = {par1: "value1", par2: "value2" ... }
so how can I change place of element? for example instead of
("element1", "element2", "element3","element4")
to be
("element4", "element2", "element3","element1")
or
("element1", "element4", "element3","element2")
Share
Improve this question
edited Sep 10, 2012 at 19:47
Irakli
asked Sep 10, 2012 at 19:29
IrakliIrakli
1,1436 gold badges30 silver badges56 bronze badges
5
|
6 Answers
Reset to default 7First, build the object properly:
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'....}
}
Then swap:
var tmp = array['element2'];
array['element2'] = array['element1'];
array['element1'] = tmp;
What you've posted in your question is not an array, it's not even valid javascript syntax. Since you ask about order, I'll assume you are not using objects as objects in javascript have no guaranteed order.
That being said, I'm going to assume you have an array declared as such:
var testArray = [{ ... }, { ... }, { ... }];
To swap two elements, you just need a generic swap function:
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/
you can add it as an array prototype like so:
Array.prototype.swap = function (index1, index2) {
if (index1 <= this.length && index2 <= this.length) {
var temp = this[index2];
this[index2] = this[index1];
this[index1] = temp;
}
};
arr = [0,1,2,3];
a = arr[3];
arr[3] = arr[0];
arr[0] = a;
I'd just write a swap function.
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"
You can now do:
let list = [1,2,3,4];
[list[1],list[3]] = [list[3],list[1]];
//Result: [1,4,3,2]
本文标签: Javascript change place of array elementStack Overflow
版权声明:本文标题:Javascript change place of array element - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1738455933a2087752.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
'element1' = {
is not valid syntax. Do you have an array of objects? in which case it would be:array = [ {'element1':{'par1':...}}, {'element2':{'par1':...}}]
Or is your array actually an associative array (aka js object). In that case it would be:array = {'element1':{'par1'..}, 'element2':{'par1':...}}
– driangle Commented Sep 10, 2012 at 19:32