she*_*wen 1 javascript algorithm swap function
function swap(x,y){
var t=x;
x=y;
y=t;
}
Run Code Online (Sandbox Code Playgroud)
这不行.当你swap(a,b),变量a和b被复制到功能,在该功能无论发生什么事不会影响真正的价值a和b.我想要这样的东西:
(function(){
a=1;
b=2;
function swap(){//something}
swap(a,b);
console.log(a) //2
console.log(b) //1
})()
Run Code Online (Sandbox Code Playgroud)
这该怎么做?
如果您使用的是最新版本的JavaScript(ES2015),则可以使用名为"destructuring"的新语言功能.你不需要一个功能.它看起来像这样:
let a = 1;
let b = 2;
// swap!
[b, a] = [a, b];
Run Code Online (Sandbox Code Playgroud)
如果你想要一个功能,你可以这样做:
function swap(a, b) {
return [b, a]
}
[a, b] = swap(a, b);
Run Code Online (Sandbox Code Playgroud)
看看这段代码,我更喜欢这个函数,虽然它有点多余.我喜欢它的表现力.你不会对代码的作用感到困惑.
| 归档时间: |
|
| 查看次数: |
4827 次 |
| 最近记录: |