一个小小的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对象原型中。也便于使用。
原文:http://www.cnblogs.com/meanhow2013/p/4441464.html