JS Как вернуть всех людей с одинаковой фамилией - PullRequest
0 голосов
/ 22 декабря 2018

Этот вопрос был удален

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Ну, вы используете include, который будет искать Смита в полной строке.

  1. Используя endsWith

let arr = ['Charlotte Jones', 'Rebecca Smith', 'Harry Smith', 'John Smithy', 'Smith Jones'];

    let op = arr.filter(e=> e.endsWith('Smith'))

    console.log(op);
Использование регулярных выражений

let arr = ['Charlotte Jones', 'Rebecca Smith', 'Harry Smith', 'John Smithy', 'Smith Jones'];

let op = arr.filter(e=> /\ssmith$/ig.test(e))

console.log(op);
0 голосов
/ 22 декабря 2018

Видели ли вы конкретно, какие тесты в тестовой группе дают сбой?

Ваш метод возврата всех элементов массива, содержащих строку «Смит», вернет массив элементов, в которых есть «Смит», ВСЕГДА и вернет точную строку.

В вашемВ четвертом тесте группы вы получите оба элемента массива и по мере их записи (то есть второй элемент вернется как «Гарри Смит».

В последнем тесте вы также получите оба элемента,и первый элемент будет возвращен как «Джон Смит».

Вам нужно изменить тест фильтра, чтобы он проверял только фамилию (подсказка: возможно, разбить каждую строку и проверить фамилию? - I 'Позвольте вам разобраться, как это сделать).

Я думаю, что последний тест всегда будет провален, как вы его написали. Я подозреваю, что он должен был вернуть «Джона Смита», и вы должны убедиться, что«Smithy» не проходит тест. Если это так, вы захотите расширить свой фильтр, чтобы обеспечить, чтобы фамилия РАВНАЯ «Смит», а не включала ее.

Удачи!

...