设置JavaScript数组
Setting up a JavaScript Array
我正在开发一个使用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' };
我有一个数组,看起来像这样:
let games = [];
我正在尝试了解如何填充此数组以实现快速访问。我不知道我会得到一个身份证,比如"FTY/294"。我正在努力了解如何设置游戏阵列,这样我就可以做一些类似的事情:
let selectedGame = games['FTY/294'].
如何在JavaScript中做到这一点?
谢谢!
在javascript中,对象的行为与Java/C#中的HashTable
或Dictionary
非常相似。您可以在键下使用存储值,然后使用该键稍后检索值。
如果您使用的是对象而不是数组,那么您可以访问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' };
如果你需要迭代所有游戏,你可以使用Object.keys(games)
来检索所有键的列表,然后使用它来迭代你的对象。
Object.keys(games).forEach(x => {
var game = games[x];
// do something with game
});
在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
}
您可能需要考虑使用一个对象作为关联数组,它的功能类似于字典(即,您传入一个键,然后收到一个值作为返回):
// Define your object
let games = {};
// Add each game here
games['XVF/328'] = { name:'Checkers', publisher:'ABC games' };
games['FTY/294'] = { name:'Chess', publisher:'Infinity Fun' };
games['QPG/72Z'] = { name:'Backgammon', publisher:'Max Fun' };
然后简单地检索你正在寻找的游戏通过:
let selectedGame = games[id]; // where id is something like "XVF/328"
如果您使用的是ES6,那么您肯定应该使用Maps
const games = new Map(); // or let
games.set('XVF/328', { id:'XVF/328', name:'Checkers', publisher:'ABC games' })
games.set('FTY/294', { id:'FTY/294', name:'Chess', publisher:'Infinity Fun' };
games.set('QPG/72Z', { id:'QPG/72Z', name:'Backgammon', publisher:'Max Fun' };
let game = games.get('FTY/294');
您可以在新对象中使用id作为密钥:
games = {};
games[game1.id] = game1;
games[game2.id] = game2;
games[game3.id] = game3;
希望这能有所帮助。
game1 = { id:'XVF/328', name:'Checkers', publisher:'ABC games' };
game2 = { id:'FTY/294', name:'Chess', publisher:'Infinity Fun' };
game3 = { id:'QPG/72Z', name:'Backgammon', publisher:'Max Fun' };
games = {};
games[game1.id] = game1;
games[game2.id] = game2;
games[game3.id] = game3;
console.log(games);
相关文章:
- 如何遍历包含对象的数组-javascript
- 保存数组javascript
- 查找数组javascript中包含的元素类型
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 从多维数组javascript中提取特定值
- 如何在数组javascript中选择伪随机值
- 拆分字符串数组(JavaScript)后未定义
- 从数组JavaScript中删除并返回最后n个项的最快方法
- 使用条件for循环更新数组-Javascript
- 从数组javascript创建新对象
- 用数组(javascript)中的值替换regex捕获
- 从数组[Javascript]的总长度中减去一个干净的数字
- 将一个字符串数组解析为一个新的数组javascript
- 如何将对象转换为对象数组javascript
- 赢得't循环数组javascript
- 从不同的数组 JavaScript 中获取值
- 多维数组 JAVASCRIPT 出了点问题
- 可以't分配给一个对象数组javascript
- 比较数组JavaScript中的对象
- 如何完成缺少(连续)元素的数组|Javascript