为什么未定义的被记录?

var arr = [{"eat" : 0}, {"sleep" : 1}, {"code" : 2}];
var key = "eat";
console.log(arr[key]);

我希望在日志中看到0

http://jsfiddle.net/jFFW5/

最佳答案

首先,我在这里看不到任何JSON。我看到一个普通的JavaScript数组对象-JSON是一种数据序列化格式。

其次,您可能正在寻找arr[0],它将返回{"eat": 0}

数组用于存储顺序数据。

或者,可以将它们存储在符合您实际需要的对象中:

var arr = {"eat" : 0,"sleep" : 1,"code" : 2};
var key = "eat";
console.log(arr[key]);

注意:在更现代的实现中-您可能应该为此使用 Map 而不是数组。或使用Object.create(null)

10-08 19:14