簡體   English   中英

如何從包含細分的對象數組中提取元素-Javascript和Angular 5

[英]How to extract elements from an array of objects that contains a subtring - Javascript and Angular 5

我試圖將包含子字符串的數組上的元素。 例如:

 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 '{} 

您可以使用.filter()和String的.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); 

使用簡單的.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); 

[{name: "Pablo Ramon", lastName: "Garcia"}, {name: "Ernesto", lastName: "Salgado"}]
.filter (p => p.name.includes ('Ra'))

//{name: "Pablo Ramon", lastName: "Garcia"}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM