javascript:can object可以直接替换数组?

时间:2014-08-03 23:35:29

标签: javascript arrays object data-structures

假设我只想要一个变量来保存一堆信息,而顺序并不重要。例如,我有一个变量players,它可以保存游戏中玩家的所有信息。如果我使用一个对象来保存所有信息,那么以一种可能的方式使用数组是不是更好呢?

var players = [{ name: 'john', age: '10' }, { name: 'lily', age: '11' }];

var players = { john: { name: 'john', age: '10' }, lily: { name: 'lily', age: '11' } };

如果我计算玩家的数量,或直接访问/编辑玩家的信息,是不是以各种方式使用对象优于数组?

如果是这样,对象可以在任何无序情况下直接替换数组吗?

1 个答案:

答案 0 :(得分:1)

您无法访问所有内置数组方法。如果你想要一个排序列表怎么办?我可以想象你想拥有一个数组的几十个场景。

你获得了什么?按名称访问数组中的对象?数组是对象,因此您只需扩展数组即可:

var players = [{ name: 'john', age: '10' }, { name: 'lily', age: '11' }];
players.forEach(function (player) {
    players[player.name] = player;
});
console.log(player[0] === player.john); // true!