javascript - 获取相反的值javascript

标签 javascript

我有两个字符串:“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/

相关文章:

javascript - 如何将变量变成对象?

javascript - 背景图像

javascript - 代理未按预期工作

javascript - Knockout - 如何一起使用 option 和 foreach 绑定(bind)

javascript - jquery .next() 和 .prev() 在同一个 div 中

javascript - 如何从 Google 表格访问单元格值?

javascript - 使用 jquery 水平背景 css 位置

asp.net - 使用 Jquery.post 时如何在 ASP.Net 中获取表单值

javascript - ExtJS 4 - 网格中的数据不可见

javascript - 验证 rxjs 订阅内的方法调用