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.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决