пытается использовать точные строки для IndexOf в функции фильтра для массива Javascript - PullRequest
0 голосов
/ 15 февраля 2020

В настоящее время я создаю функцию поиска с параметрами фильтра для массива json:

if (ploc != " - " ) {
    var filteredarray7 = filteredarray6.filter(function(orte){
        return orte['Painting Location'].indexOf(ploc) !== -1 ;
    });
} else {
    var filteredarray7 = filteredarray6;
}

, переменная plo c может быть числом от 1 до 12 или строкой "-" , ['Местоположение рисования'] могут быть строками типа "1; 2; 4; 12;", "1" или "3; 5; 12", в то время как каждое число в этой строке напоминает категорию местоположения рисования.

Мой вопрос: Какие изменения мне нужно сделать, чтобы он возвращал все объекты, которые включают в себя, например, 1 в своих строках, но не объекты с 10, 11, 12, если 1 также не является частью строки.

Прошу прощения за мой плохой английский sh, я давно не писал что-то на иностранном языке.

1 Ответ

0 голосов
/ 15 февраля 2020

Если я вас правильно понимаю, вам лучше использовать регулярные выражения.

return orte['Painting Location'].search(new Regexp('(^|;)\s*' + ploc + '\s*($|;)')) != -1;

Или:

return !!orte['Painting Location'].match(new Regexp('(^|;)\s*' + ploc + '\s*($|;)'));

Читайте здесь о RegExp в JavaScript .

...