games = allgames.filter(g => games.filter(g => g.gameState === '0').map(i => i.gameId).indexOf(g.id) !== -1)
games = allgames.filter(g => games.filter(g => g.gameState === '0').map(i => i.gameId).indexOf(g.id) !== -1)
我还原了一下你这个场景哈 以后还是要多写注释 哈哈
let allgames = [
{
...,
id: '0001'
}, {
...,
id: '0002'
}]
let games = [{
...,
gameState: '1',
gameId: '0003',
gameName: '魂斗罗'
}, {
...,
gameState: '0',
gameId: '1',
gameName: '冒险岛'
}]
games = allgames
.filter(g => games
.filter(g => g.gameState === '0') //跟allgames没有关系,就是单纯的把games里gameState为0的全部过滤出来
.map(i => i.gameId) //跟allgames没关系,然后把上一步拿到的gameState为0的对象只返回gameId这个字段 返回的格式为 [id1,id2,di3,...]
.indexOf(g.id) !== -1 //然后把最开始allgames中每一项里的id跟上一步返回的数组做比较,若数组中有allgames中的这一项,则返回
)
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
5 回答3.8k 阅读