我有一个称为
getFileterMenus = (menus, filterMenu) => {
let filteredMenus = _.filter(menus, menu => menu.title !== filterMenu)
return filteredMenus
}
在这里,filterMenu
我想将其作为数组传递。就像这样[[first],'second']。我也想保留过滤器功能。
getFileterMenus = (menus, filterMenu) => {
let filteredMenus = []
for (let i = 0; i <= filterMenu.length - 1; i++) {
filteredMenus = _.filter(menus, menu => menu.title !== filterMenu[i])
}
return filteredMenus
}
除了使用循环,还有其他方法可以做到这一点吗?
假设menus
是对象的数组,filterMenu
包含要过滤器,你可以用ES6做标题的排列完全不使用lodash,使用的组合Array.prototype.filter
和Array.prototype.includes
:
getFileterMenus = (menus, filterMenu) => {
return menus.filter(menu => !filterMenu.includes(menu.title));
}
如果您真的想以牺牲可读性为代价来发挥创造力,那么可以使用一种具有对象销毁功能的单行代码:
getFileterMenus = (menus, filterMenu) => menus.filter(({ title })=> !filterMenu.includes(title))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句