2013-07-29 3 views
0

У меня есть список строк & Я хочу проверить, что в нем нет определенной строки. Я использую javascript, поэтому мне было интересно, будет ли метод Trie или двоичный поиск лучше. Есть ли что-то заранее реализованное, которое можно использовать для чего-то подобного?Поиск строки в списке строк

Вот объект:

var TheObject = { "TheItemId": Index, "TheItemText": NewItem }; 

У меня есть список объектов этого, когда я вставить новый пункт, я хочу быть уверен, что «TheItemText» не содержит каких-либо подобных текстов.

+0

Что именно вы подразумеваете под «Trie or w binary»? – Virus721

+0

Поиск алгоритмов –

+0

, если это допустимая строка json, которую вы можете использовать с помощью встроенных функций. –

ответ

0

Не было бы чем-то вроде этой работы?

typeof TheList.TheItemText === 'undefined' 
+0

Я могу проверить это с помощью команды, но я спрашиваю о лучшем алгоритме для этого –

1

Объекты JavaScript могут рассматриваться как хэш-карты. Таким образом, вы бы сохранили объект var strings = {}. Всякий раз, когда вы добавляете объект в список, вы также добавляете свойство в объект strings: strings[text] = true. Затем вы можете легко проверить, был ли добавлен текст до if (strings[text]) {. Недостатком этого решения является то, что вы должны отслеживать изменения в двух коллекциях (ваш список и strings). Может быть, вам совсем не нужен список, тогда вы можете использовать strings[NewItem] = { 'TheItemId': Index, 'TheItemText': NewItem }. Изменения в «TheItemText» и имя свойства должны быть еще скоординированы.