У меня есть таблица определяется следующим образом:Лучший способ поиска строки в таблице?
export interface Answer {
order: number,
text: string
}
export class Config {
answers:Answer[];
mapAnswerTextToOrder(answer:string):number {
return (this.answers[this.answers.findIndex((value:Answer):boolean => {return(value.text == answer);})].order);
}
}
Целью mapAnswerTextToOrder является для поиска строки answer
и вернуть его соответствующий order
. Код, который у меня выше, не соответствует ES5. Я думаю, что знаю, как переписать его с помощью .map, но он уже очень уродлив, он станет еще более уродливым.
Должен быть более чистый способ добиться того же самого в TypeScript. У кого-нибудь есть предложение?
Спасибо. Несколько вопросов: нет .filter новая функция javascript? Также я не понимаю строку: «return this.answers.filter (a => a.answer == answer) [0] .order;" в полной мере. В частности, аргумент фильтрации - это обратный вызов, который вы поставляете с помощью толстой стрелки. Но: можете ли вы разделить фразу: «a => a.answer == answer»? – pitosalas
'.filter новая функция javascript' ее ES5 (7 лет). – basarat
'a => a.answer == answer' для члена' a' в 'ответах' его' a.answer' должен равняться 'answer', который был передан в функцию – basarat