У меня есть следующий код в моем существующем проекте.Javascript: indexOf в объектной литературе
//selectedColumn is dynamic but will have part of the string
if(selectedColumn.indexOf(const.abc) > -1 || selectedColumn.indexOf(const.abcd) > -1) //selectedColumn can be bc, ab etc
{
//logic 1
}
if(selectedColumn.indexOf(const.xyz) > -1 || selectedColumn.indexOf(const.wxyz) > -1){ //selectedColumn can be xy, yz etc
//logic 2
}
//.. so on and so forth
Я хотел бы использовать объектную литературную нотацию вместо этой, если есть еще лестница.
var logicLookup = {
"???": function(){ //what should be the func name here
//logic 1
}
};
logicLookup[selectedColumn]()
Как бы получить имя функции внутри литерала объекта? Я считаю, что я не могу выполнить операцию indexOf
внутри объектного литерала.
Если я даю этой функции такое имя, как 'ab', тогда мне все равно придется делать, если еще раз, чтобы вытащить логику.
if(selectedColumn.indexOf(const.abc) > -1 || selectedColumn.indexOf(const.abcd) > -1)
{
logicLookup["ab"]()
}
Я хочу этого, если его следует избегать.
Любая помощь будет оценена по достоинству. Я хорошо, если есть какая-то альтернатива этому, если ....
Шаблон, который вы пытаетесь использовать, полезен только для * точных совпадений *, а не подстрочных совпадений. – Quentin
Да @Quentin. Есть ли какая-либо альтернатива или лучший способ написать, чтобы исключить выражения if else? –