如何用过滤器函数替换以下内容以在 JavaScript 中进行循环



如何在 JavaScript 中将 for 循环替换为 .filter 函数。匹配的名称将显示在列表中。

let originalMoviesList = [ //Contains moviesname and url
{
name: "War Horse",
url: "War_Horse.jpg",
tag: "lepsum lepsum lepsum lepsum"
},{
name: "War Horse",
url: "War_Horse.jpg",
tag: "lepsum lepsum lepsum lepsum"
}
]
**let** matchedTerms = [];//`array for storing the matched terms`
searchTerm = searchTerm.toLowerCase();
for (let i = 0; i < originalMoviesList.length; i++) {
if ((originalMoviesList[i].name).toLowerCase().indexOf(searchTerm) !== -1) {
matchedTerms.push({//pushing into the array
name: originalMoviesList[i].name,//pushing name to the array of objects
url: originalMoviesList[i].url//pushing url to the array of objects
});
}
}

你快到了。您只需要将条件放入过滤函数中

即可

let originalMoviesList = [ //Contains moviesname and url
{
name: "War Horse",
url: "War_Horse.jpg",
tag: "lepsum lepsum lepsum lepsum"
}, {
name: "Star Horse",
url: "War_Horse.jpg",
tag: "lepsum lepsum lepsum lepsum"
}, {
name: "War Horse",
url: "War_Horse.jpg",
tag: "lepsum lepsum lepsum lepsum"
}
]
searchTerm = "star"; //searchTerm.toLowerCase();
let matchedTerms = originalMoviesList.filter(function(i) {
return i.name.toLowerCase().indexOf(searchTerm) > -1;
});

该过滤器也可以在 EcmaScript 6 兼容代码中使用胖箭头编写。

let originalMoviesList = [ 
{
name: "War Horse",
url: "War_Horse.jpg",
tag: "horse war"
},
{
name: "War Dolphin",
url: "War_Dolphin.jpg",
tag: "dolphin war"
}
];
let searchTerm = 'Horse';
let matchedTerms = originalMoviesList.filter( (movie) => movie.name
.toLowerCase()
.includes(searchTerm.toLowerCase()));
console.log(matchedTerms);

最新更新