快速的新秀问题。
假设我有一个像这样的javsacript对象:
var meh=[["cars",27], ["bikes",85], ["skates",4]];
要浏览每个数据对象,我可以这样做:
$.each(meh, function(index,value){
console.log(value) //returns ["cars",27] etc..
});
考虑到我知道汽车的位置,我可以这样做来访问它:
console.log(meh[0][0]) //shows "Cars"
当然,如果我想要汽车的价值,我需要这样做:
console.log(meh[0][1]) //Shows 27
现在,我有字符串 - 密钥,例如cars
,bikes
或skates
但我无法弄清楚这一点:我如何访问各自的价值观?
meh["cars"]
返回undefined,因为据我所知,它无法在每个对象之外找到描述。
我可以做meh[0]["cars"]
但是由于汽车的位置可能会发生变化,它会失败。
如何使用密钥访问某些内容的值?
感谢。
答案 0 :(得分:8)
您应该将其更改为对象
var meh={"cars" :27 , "bikes" :85, "skates" :4};
现在您只需通过按键
即可访问它alert(meh['cars']); //27
答案 1 :(得分:4)
如果您有权访问代码并可以更改对象,请将其更改为以下内容:
meh = {
'cars': 27,
'bikes': 85,
'skates': 4
};
您可以使用
等键访问它们meh["cars"] //will give you 27
如果您无法更改代码,那么我看到的唯一方法是使用jQuery.each
并将每个密钥与您的已知密钥进行比较并将其分配给临时变量。
答案 2 :(得分:3)
改为使用对象:
var meh = {
"cars": 27,
"bikes": 85,
"skates": 4
};
您可以使用$.each()
:
$.each(meh, function (key, value) {
// key == "cars" and value == 27, etc.
});
访问值的方式如下:
meh.cars
相当于:
meh["cars"]
显然,第二种表示法可以与变量一起使用。
答案 3 :(得分:0)
您的数据结构在数组中,因此您始终必须通过数组语法进行访问,例如: [0] [1]。 JavaScript中的数组不是关联的。您可以编写一个辅助函数,该函数遍历数组,查找您指定的键并返回值。或者您可以将数据结构更改为对象,这些对象支持键查找。
答案 4 :(得分:0)
如果您无法更改对象,则可以创建地图以简化管理索引。 E.g。
map = {
'cars': 0,
'bikes': 1,
'skates': 2
};
然后,你可以这样做:
alert(meh[map['cars']][1]);