如何根据player-id属性值将对象数组拆分为多个对应分组数组
实现方案
你可以直接用数组的reduce方法完成分组,该方案天然适配数据库动态新增玩家的场景,无需提前定义对应玩家的变量:
const playerGroups = database.reduce((acc, cur) => { const playerKey = `player${cur.player}` // 该玩家无分组则先初始化空数组 if (!acc[playerKey]) acc[playerKey] = [] acc[playerKey].push(cur) return acc }, {})
执行后你需要的所有玩家数组都会存在playerGroups对象中,例如取玩家1的数据直接访问playerGroups.player1即可,和你预期的结构完全一致。
如果确实需要将每个玩家数组声明为独立的全局变量,可以追加以下代码:
// 可选:生成分组对应的全局独立变量 Object.entries(playerGroups).forEach(([playerKey, playerData]) => { window[playerKey] = playerData })
执行后即可直接调用player1、player2等变量使用。
内容的提问来源于stack exchange,提问作者msfld
相关产品推荐
相关产品推荐

