создать обработчик, затем вызвать его onClick prop и передать индекс оттуда.
Пример
// Creates and returns a function to be called with click event
clickHandler = index => event => {
console.log(index)
}
<input onClick={this.clickHander(index)} />
или
clickHandler = (index, event) => {
// handle here
}
<input onClick={() => this.clickHander(index, event)} />
использует обычные функции, если вы используете ES5
Захватите плоский текстовый файл из программы проверки правописания с открытым исходным кодом как ASpell ( http://aspell.net/ ) и загрузите его в Список или независимо от того, что структурируют, Вам нравится.
, например,
List<string> words = System.IO.File.ReadAllText("MyWords.txt").Split(new string[]{Environment.NewLine}).ToList();
// C# 3.0 (LINQ) example:
// get all words of length 5:
from word in words where word.length==5 select word
// get partial matches on "foo"
from word in words where word.Contains("foo") select word
// C# 2.0 example:
// get all words of length 5:
words.FindAll(delegate(string s) { return s.Length == 5; });
// get partial matches on "foo"
words.FindAll(delegate(string s) { return s.Contains("foo"); });
Вы могли бы хотеть искать реализация Trie . Это, конечно, поможет со "словами, запускающимися с XYZ", а также точных совпадений. Можно хотеть иметь все данные в нескольких структурах данных, каждый настроенный для конкретной задачи - например, один для анаграмм, один для "длиной" и т.д., словари естественного языка являются относительно маленькими по сравнению с RAM в эти дни, поэтому если Вы действительно хотите быстрый поиск, это - вероятно, способ пойти.
В зависимости от того, как включенный Ваши запросы будут, это могло бы стоить исследовать WordNet, который является в основном семантическим словарем. Это включает части речи, синонимы и другие типы отношений между словами.
NetSpell ( http://www.loresoft.com/netspell/ ) - это программа проверки орфографии, написанная на .NET, в которой есть списки слов на нескольких языках, которые вы можете использовать.
Я с Barry Fandango на этом, но можно сделать это без.NET LINQ. 2.0, имеет некоторые хорошие методы фильтрации в Списке (T) тип. Тот, который я предлагаю,
List(T).FindAll(Predicate(T)) : List(T)
, Этот метод поместит каждый элемент в список через метод предиката и возвратит список слов, которые возвращают 'true'. Так, загрузите свои слова, как предложено из словаря с открытым исходным кодом в Список (Строка). Найти все слова длины 5...
List(String) words = LoadFromDictionary();
List(String) fiveLetterWords = words.FindAll(delegate(String word)
{
return word.Length == 5;
});
Или для всех слов, запускающихся с 'abc'...
List(String) words = LoadFromDictionary();
List(String) abcWords = words.FindAll(delegate(String word)
{
return word.StartsWith('abc');
});