Тестер совместимости (функция сравнения строк) в JavaScript - PullRequest
0 голосов
/ 26 ноября 2010

Итак, моя подруга и ее сестры играли с этим приложением для iPhone, где вы могли ввести два имени, и оно вернуло бы% совместимости.Я тоже начал с ней играть (не стыдно) и пытался понять, как это работает.Если бы вы сравнили две точные строки, например, «Джон Доу» и «Джон Доу», это вернуло бы случайную совместимость, но каждый раз возвращало бы одну и ту же совместимость.Так что это не было действительно «случайным».

Кто-нибудь знает, как я могу заставить функцию делать то же самое в JavaScript?Вот моя функция оболочки:

 function getCompatibility(name1, name2) {
   // Lower case name1 and name2 and remove spaces
   name1 = name1.replace(' ', '').toLowerCase();
   name2 = name2.replace(' ', '').toLowerCase();

   // Do some type of comparison to get a value between 0 and 100 back
   // HELP ME HERE =]
 }

 getCompatibility('John Doe', 'John Doe'); // outputs 60% (or something)
 getCompatibility('John Doe', 'John Doe'); // outputs 60% (same as above)
 getCompatibility('John Resig', 'Angelina Jolie'); // outputs 90% (or something)

Ответы [ 2 ]

2 голосов
/ 26 ноября 2010

Вы можете вычислить число на основе строк (скажем, добавить значения ASCII каждого символа) и заполнить его генератором случайных чисел.Таким образом, он выводит то же самое, когда строки не меняются.

edit : для этого в javascript, проверьте этот вопрос .

0 голосов
/ 26 ноября 2010

Звучит не очень интересно.Я бы предпочел что-то вроде «Коллективного интеллекта программирования» Тоби Сегарана, глава 9: «Расширенная классификация: методы ядра и SVM».Он использует базу данных matchmaker, чтобы показать вам, как это сделать по различным характеристикам.Я думаю, это было бы гораздо интереснее.

То, что вы рекомендуете, может быть немного больше, чем поиск процента в ассоциативном массиве, который генерируется генератором случайных чисел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...