jquery сравнение массивов с подстрокой и без учета регистра - PullRequest
1 голос
/ 15 апреля 2020

У меня есть требование к функции jquery, которое сравнивает два массива.

listA = ['APPLE', 'banana', 'orange'] listB = ['BANANA', 'appl']

хорошо, поэтому в приведенном выше примере мне нужна функция для возврата "true". По сути, мне нужен способ

  • Обрезать каждое слово в обоих массивах, чтобы избавиться от начальных и конечных пробелов.
  • Выполнить сравнение, которое должно быть без учета регистра.
  • Сравнить уровень подстроки, что означает, что 'appl' существует внутри 'APPLE', поэтому это должно быть верно

мой код пока

<script>

$(document).ready(function(){
Array.prototype.contains = function(array) {
return array.every(function(item) {

    array = $.map(this, function(value){
       return value.replace(/ /g, '').toUpperCase();
    });

    return array.indexOf(item.replace(/ /g, '').toUpperCase()) >= 0;
}, this);
}

var result = [' APPLE', 'banana ', 'orange'].contains([ ' BANANA',' Appl ']);
alert(result);

});

поэтому в приведенном выше примере кода он должен возвращать "true"

Любая помощь очень ценится

Ответы [ 3 ]

1 голос
/ 15 апреля 2020

Вы можете обновить функцию Array.prototype.contains , как показано ниже, это позволит удалить начальные и конечные пробелы и использовать сравнение без учета регистра в функции map :

Array.prototype.contains = function(array) {
    return array.every(function(item) {
        var searchResult = this.map(function(i) {
            return i.trim().toLowerCase().indexOf(item.trim().toLowerCase()) >= 0;
        });

        return searchResult.includes(true);
    }, this);
}
0 голосов
/ 15 апреля 2020

При выполнении сравнения вы можете использовать методы toUpperCase () или toLowerCase ().

, например:

let areEqual = str1.toUpperCase() === str2.toUpperCase();
0 голосов
/ 15 апреля 2020

Вместо return в array.every( .. )

используйте счетчик. Тогда ..

return counter == array.length

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