[英]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.