函数用于交换两个数组中的元素,并从这两个数组中创建一个新数组



我怎么能写一个函数交换,需要3个参数,两个数组和一个数字,并交换两个项目在这些数组在指定的位置/索引这是第三个参数,然后返回这两个数组在另一个数组?

I tried this

function swap (arr1, arr2, pos) {
var x = arr1[pos];
arr2.splice(pos, 1, x);
var y = arr2[pos];
arr1.splice(pos, 1, y)
var newArray = arr1 + arr2;
}

但是不工作。我刚在控制台中得到undefined

function swap (arr1, arr2, pos) {
var x = arr1[pos];
var y = arr2[pos];

arr1[pos] = y;
arr2[pos] = x;

return [arr1, arr2];
}

可以使用下面的技巧

const array1 = [1,2,3];
const array2 = [4,5,6];
function swap (arr1, arr2, pos) {
[arr1[pos],arr2[pos]] = [arr2[pos],arr1[pos]];
return [...arr1, ...arr2];
}
console.log(swap(array1, array2, 1));

您忘记在末尾写return

function swap (arr1, arr2, pos) {
var x = arr1[pos];
arr2 = arr2.splice(pos, 1, x);
var y = arr2[pos];
arr1 = arr1.splice(pos, 1, y)
return arr1 + arr2;
}

试试这段代码…我希望这能解决你的问题

let arr1 = [11, 12, 13, 14, 15];
let arr2 = [21, 22, 23, 24, 25];
let pos = 2;
function swap(arr1, arr2, pos) {
var x = arr1[pos];
var y = arr2[pos];
arr2.splice(pos, 1, x);
arr1.splice(pos, 1, y)
var newArray = [...arr1, ...arr2];
return newArray
}
let x = swap(arr1, arr2, pos);
console.log(x)

输出
[ 11, 12, 23, 14, 15, 21, 22, 13, 24, 25 ]

最新更新