Javascript从数组中选择前两个

时间:2014-03-26 13:49:16

标签: javascript json

O {
    k = 57.690636,
    A = -2.010575000000017,
    type = 'terrible'
}

以上内容目前kAkeys,但这些会定期更改。所以我希望有人可以帮我解决问题。

我目前只使用data.kdata.A来获取数组中的值,但是是否可以只选择前两个并将它们设置为变量而不知道键名?

4 个答案:

答案 0 :(得分:1)

将JSON成员添加到数组中,然后使用它的索引..

var O = {
  k:57.690636,
  A:-2.010575000000017,
  type:'terrible'
};
var index = [];
for (var x in O) {
   index.push(O[x]);
};

演示:http://www.bootply.com/124965

答案 1 :(得分:1)

虽然不是最好的方法,但假设您要查找的属性的类型为数字,则以下方法可以正常工作。

var obj = {
    k : 57.690636,
    A : -2.010575000000017,
    type : 'terrible'
};


for (attr in obj)
{
if (typeof obj[attr] === 'number')
{
console.log(obj[attr]);
}
}

答案 2 :(得分:0)

您可以使用Object.keys(yourObjectHere)获取一系列密钥,但是对于更旧的浏览器兼容方法,请尝试:

var keys = [], k;
for( k in yourObjectHere) keys.push(k);

如果你愿意,你也可以在前两个循环中退出。

无论您选择这样做,现在都可以访问yourObjectHere[keys[0]]yourObjectHere[keys[1]]

答案 3 :(得分:0)

规范未定义JavaScript对象的属性顺序。这意味着根据实现,键可以按任何顺序返回,因此它们前两个键可以是对象中的任意两个键。

for..in

  

未指定枚举属性的机制和顺序(第一个算法中的步骤6.a,第二个算法中的步骤7.a)。

Object.keys

  

如果实现为for-in语句定义了特定的枚举顺序,则必须在此算法的步骤5中使用相同的枚举顺序。

最好的办法是稳定这些对象的来源,以便始终使用相同的键返回有价值的信息。


随机猜测是你使用一些减少密钥长度的缩小器。也许不是做

var returnedObject = {
  lat : '123',
  long : '456';
}

你可以这样做:

var returnedObject = {};
returnedObject['lat'] = '123';
returnedObject['long'] = '456';

这可以防止缩小更改您的密钥名称。如果您使用外部服务,您应该问自己这是否是实际公开(意味着您将使用的数据)数据与否,如果不是,那么公共替代方案是什么。