Javascript Javascript更改数组元素的位置

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12358207/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-23 07:48:34  来源:igfitidea点击:

Javascript change place of array element

javascriptarraysreplacenestedelement

提问by Irakli

I have nested array in javascript like this:

我在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" ... }

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")

回答by Johnny Mopp

First, 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;

回答by jbabey

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.

您在问题中发布的内容不是数组,它甚至不是有效的 javascript 语法。由于您询问顺序,我假设您没有使用对象,因为 javascript 中的对象没有保证的顺序。

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/

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

回答by u557022

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

回答by Tal Shahar

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;
    }
};

回答by Matt Brock

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"