【发布时间】:2020-08-22 22:09:16
【问题描述】:
我有一个对象数组
var carList = [
{
car: "maruti",
colors: ["red", "redish","yellow"]
},
{
car: "ferrari",
colors: ["purple", "red"]
},
{
car: "Merc",
colors: ["pink", "green"]
}
];
现在我有一个输入搜索字段,用户可以在其中输入汽车的颜色。
因此,如果用户键入 red 则只应返回 maruti 和 ferrari 对象。
如果用户键入 reddish 则只应返回 maruti 对象。
我尝试使用嵌套过滤器
var textToSearch = "re";
var test = carList.filter((x) => x.colors.filter((y)=> y.indexOf("textToSearch") > -1) );
即使搜索字符串只有 2 个字符,例如“re”,它也应该返回 maruti 和 ferrari 作为输出。
但这会返回所有对象,而不仅仅是 maruti 和 ferrari
注意:我希望它应该返回所有匹配的元素,而不仅仅是第一个匹配的元素。
【问题讨论】:
标签: javascript arrays sorting data-structures ecmascript-6