完整代码见GitHub:
github.com/Veilhry/lanqiaoweb/tree/master/09
网页在线预览地址:
https://veilhry.github.io/lanqiaoweb/09/index.html
介绍
“狼人杀”是一款多人参与的策略类桌面游戏。本题我们一起完成一个简易的狼人杀游戏,让我们找到其中的狼人。
目标
在本题index.html已经给出的数组中,我们可以通过数组的 filter方法:cardList.filter((item) => item.category == “werewolf”)返回一个都是狼人的新数组。但是技术主管为了考验大家的技术,规定了在代码中任何地方都不能出现filter关键字。所以我们需要封装一个myarray方法来实现类似数组filter的功能。
1.狼人比较狡猾,筛选狼人的条件可能会变化,例如 item.name,请实现一
个通用的方法。
2.完成封装后,页面效果会自动完成,
题解
本题看似花哨,其实主要是一个原生filter函数的实现。
// 返回条件为真的新数组
Array.prototype.myarray = function (cb) {
// TODO:待补充代码
let res = []
// console.log(cb(e));
this.forEach((ele,index)=>{
let flag = cb(ele)
if(flag){
res.push(this[index])
}
}
)
return res
};