一个小小的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对象原型中。也便于使用。

posted on 2015-04-20 14:05  谢小川  阅读(181)  评论(0编辑  收藏  举报