通过放置在对象中来标识对象属性

时间:2012-07-16 08:33:49

标签: javascript jquery

如何根据对象中的位置识别对象。

myObj.b = 2 

我可以像myObj[1] to show 2 also那样去找一些吗?

var myObj = {
    a: 1,
    b: 2,
    c: 3,
    d: 4,
    e: 5,
    f: 6
}

2 个答案:

答案 0 :(得分:8)

不,这是不可能的。对象属性没有位置,因为对象没有被排序。

你必须在:

之间做出选择
  • 数组:按顺序排列[0..length)范围内的连续键。
  • 对象:任意键,无保证订单。

一种可能的解决方法是创建一个对象和一个数组,然后使用该对象进行基于密钥的访问,并使用该数组进行基于索引的访问。然后,您可以使用该数组来获取给定值的索引。

答案 1 :(得分:2)

不,myObj [1]会导致未定义。对象文字是哈希映射(键,值存储),它不支持基于索引的访问。这是因为哈希中的项目没有可预测的迭代顺序。

使用对象字段获取索引的味道,你可以做的是:(在jQuery中)

$.each(myObj, function(index, element) {
    console.log(index + ' : ' + element)
});

在普通的javascript中,您可以使用for in循环遍历字段,如下所示:

for (key in myObj) {
   console.log(key);
   console.log(myObj[key]);
}

(注意:您的文字有语法错误)。