我正在开发一个使用ES 6 JavaScript的应用程序.这个应用程序有一个游戏列表.每个游戏都有一个ID.对象定义如下:
let game1 = { id:'XVF/328', name:'Checkers', publisher:'ABC games' };
let game2 = { id:'FTY/294', name:'Chess', publisher:'Infinity Fun' };
let game3 = { id:'QPG/72Z', name:'Backgammon', publisher:'Max Fun' };
Run Code Online (Sandbox Code Playgroud)
我有一个看起来像这样的数组:
let games = [];
Run Code Online (Sandbox Code Playgroud)
我正在尝试了解如何填充此数组以便快速访问.我不,我会得到一个ID,比如'FTY/294'.我正在尝试了解如何设置游戏阵列,以便我可以执行以下操作:
let selectedGame = games['FTY/294'].
Run Code Online (Sandbox Code Playgroud)
你怎么能用JavaScript做到这一点?
谢谢!
在JavaScript中,对象的行为很像HashTable或者Dictionary是Java/C#.您可以在键下使用商店值,并使用该键稍后检索该值.
如果您使用对象而不是数组,那么您将获得key-> value访问权限.
let games = {};
games['XVF/328'] = { id:'XVF/328', name:'Checkers', publisher:'ABC games' };
games['FTY/294'] = { id:'FTY/294', name:'Chess', publisher:'Infinity Fun' };
Run Code Online (Sandbox Code Playgroud)
如果您需要迭代所有游戏,您可以使用它Object.keys(games)来检索所有键的列表,然后使用它来迭代您的对象.
Object.keys(games).forEach(x => {
var game = games[x];
// do something with game
});
Run Code Online (Sandbox Code Playgroud)
在ES6中,您还可以选择使用Map,它可以为您提供关联数组的优势(如上所述),但增加了可迭代支持.
var games = new Map();
games.set('XVF/328', { id:'XVF/328', name:'Checkers', publisher:'ABC games' });
// ....etc
for (let [id, game] of games) {
// do something with the game
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |