Много, много способов сделать это.
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"
Что вы подразумеваете под «b», получающим «a» и «a» получение «b»? – j08691
'return str == 'a'? 'b': 'a'; 'более читабельна, чем у вас сейчас. Зачем вам это нужно? – Blender
OP сказал без ** тернарных ** или если еще – Gabe