Как извлечь элементы из массива объектов, который содержит подстроку - Javascript и Angular 5 - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь взять элементы в массиве, который содержит подстроку.Например:

 myArray = [{name: "Pablo Ramon", lastName: "Garcia"}, {name: "Ernesto", lastName: "Salgado"}]

И давая строку для поиска str = "Ra", я хотел бы создать новый массив только с {name: "Pablo Ramon", lastName: "Garcia"} после применения фильтра.

Если яне неправильно, это возможно, используя map, но я не знаю, как это сделать.

РЕДАКТИРОВАТЬ

Моя текущая структура: Объект

export class Car{
  $key: string;
  title: string;
  description: string;
}

Из службы

  betList: any;

Ошибка, которую я получаю после использования следующей команды:

Команда1

 this.betList = this.betList.filter(o =>
   Object.values(o).some(s => s.includes(title))
 );

Команда 2

this.betList = this.betList.filter(o =>
   Object.values(o).some(s => s.indexOf(title) >= 0)
);

Ошибка

Property 'includes' does not exist on type '{}

Ответы [ 3 ]

0 голосов
/ 14 ноября 2018

Используйте .filter() простым способом:

var data = [{
  name: "Pablo Ramon",
  lastName: "Garcia"
}, {
  name: "Ernesto",
  lastName: "Salgado"
}];
var result = data.filter(o => Object.values(o).some(s => s.includes("Ra")));

console.log(result);

Другое решение без .includes():

var data = [{
  name: "Pablo Ramon",
  lastName: "Garcia"
}, {
  name: "Ernesto",
  lastName: "Salgado"
}];
var result = data.filter(o => Object.values(o).some(s => s.indexOf("Ra") >= 0 ));

console.log(result);
0 голосов
/ 14 ноября 2018
[{name: "Pablo Ramon", lastName: "Garcia"}, {name: "Ernesto", lastName: "Salgado"}]
.filter (p => p.name.includes ('Ra'))

//{name: "Pablo Ramon", lastName: "Garcia"}
0 голосов
/ 14 ноября 2018

Вы можете отфильтровать массив, используя методы .filter() и String's .includes():

let data = [{name: "Pablo Ramon", lastName: "Garcia"}, {name: "Ernesto", lastName: "Salgado"}];

let str = 'Ra';

let result = data.filter(o => Object.values(o).some(s => s.includes(str)));

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