如果我有这个电影id数组
movies = [28, 14, 100, 53, 37]
以及这个对象数组。
genres = [
{id: 28, name: "Action"},
{id: 10770, name: "TV Movie"},
{id: 53, name: "Thriller"},
{id: 10752, name: "War"},
{id: 37, name: "Western"}
]
我希望返回一个匹配id的数组,例如['动作','惊悚','西部']。
我已经有了一个解决方案,但感觉它可以更好。重构这段代码的最佳方法是什么?谢谢。
genre_array = []
movies.forEach(function(e){
genres.forEach(function(element){
if (element.id == e) {
genre_array.push(element.name)
}
});
});
===
而不是==
,这样可以消除任何类型强制转换的影响。另一件事是要研究不可变方法,例如reduce、map和filter。原因是不可变性有助于通过返回新值而不是改变现有值来减少副作用。 - AHB