关于swap

时间:2023-12-24 23:17:01

一个小小的swap确出现了好多个版本。不断的优化,不断的发现问题:

版本一:

function swap(a,b){
var temp = a;
a = b;
b = temp;
}

这个版本对于数组中的位置无法实现其交换功能。原因是在这种情况下,数组把值传给了函数(仅仅是传值)。

版本二:

function swap(arr,a,b){
var temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}

这个版本把数组也传给了函数,这样能实现对数组执行交换的功能。

版本三:

Array.prototype.swap = function(index1,index2){
var temp = this[index1];
this[index1] = this[index2];
this[index2] = temp;
}

这个版本直接写在Array对象原型中。也便于使用。