我有两个字符串:“a”和“b”。如何从“a”得到“b”。而“b”中的“a”没有if?喜欢:
var arr = ["a", "b"];
function reverse(str){
return arr[+!arr.indexOf(str)];
}
但以更优雅的方式。
最佳答案
有很多很多方法可以做到这一点。
var a = 'foo', b = 'bar',
arr = [a, b];
// dictionary object
var o = {};
o[a] = b;
o[b] = a;
function reverse(x) {
return o[x];
}
// equality with cast (+x or x|0)
function reverse(x) {
return arr[+(x === a)];
}
// or
function reverse(x) {
return arr[+(x === arr[0])];
}
如果你只是想在两者之间轮流,你可以编写一个生成器
var reverse = (function () {
var i = 1;
return function () {
return arr[i = 1 - i];
}
}());
reverse(); // "foo"
reverse(); // "bar"
reverse(); // "foo"
关于javascript - 获取相反的值javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17092495/