javascript - 当其他数组的序列发生变化时,如何使数组自动更改?

标签 javascript arrays sequence

有两个相关数组。

当另一个数组的序列用 Javascript 发生变化时,如何使一个数组发生变化?

比如array1(1,3,2),array2(3,2,1),我需要array 2变成(2,1,3)当我把array 1按降序(3,2, 1)?

非常感谢!!

最佳答案

我想这就是你想要的,

假设两个数组的长度相同,所以每当我改变数组的 2 个元素的位置时,也需要改变其他数组元素的位置。

var array1 = [1,3,2];
var array2 = [3,2,1];
var swapArrayElements = function(index1, index2) {
  var temp1 = array1[index1];
  array1[index1] = array1[index2];
  array1[index2] = temp1;

  var temp2 = array2[index1];
  array2[index1] = array2[index2];
  array2[index2] = temp2;
};

swapArrayElements(0,2); //out: array1[2, 3, 1] & array2[1, 2, 3]
swapArrayElements(0,1); //out: array1[3, 2, 1] & array2[2, 1, 3]

或者另一种方法,

const array1 = [1,3,2];
const array2 = [3,2,1];

const swapArrayElements = function (x, y, arr) {
  if (arr.length === 1 || x >= arr.length || y >= arr.length) return arr;
  arr.splice(y, 1, arr.splice(x, 1, arr[y])[0]);
};

const swapArrays = (i1, i2, ...args) => {
  for(let i = 0; i < args.length; i++) {
    swapArrayElements(i1, i2, args[i]);
  }
}
swapArrays(0, 2, array1, array2); //out: array1[2, 3, 1] & array2[1, 2, 3]
swapArrays(0, 1, array1, array2); //out: array1[3, 2, 1] & array2[2, 1, 3]

希望这对您有所帮助。

关于javascript - 当其他数组的序列发生变化时,如何使数组自动更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50425163/

相关文章:

javascript - 坚持导航栏延迟

JSON 中的 Javascript 数组不起作用

r - R中的累积和

javascript - Angular js : Update a variable after some time

javascript - 如何在 youtube javascript API 中删除 youtube 视频的名称?

javascript - 如何从 JavaScript 中的字符串数组中删除字符模式?

java - 如何重用 Oracle 主键列中的序列间隙?

python - 正则表达式 Python findall.使事情变得非冗余

javascript - 使用 .remove() 删除文本节点在 IE 中不起作用

java - Java:从另一个数组的属性创建一个数组