Javascript从数组中选择前两个
Javascript select first two from array
O {
k = 57.690636,
A = -2.010575000000017,
type = 'terrible'
}
上面的k
和A
是keys
,但它们是周期性变化的。所以我希望有人能帮我解决这个问题。
我目前只是使用data.k
和data.A
从数组中获取值,但是否有可能只选择前两个并将它们设置为变量而不知道键名?
将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
虽然不是最好的方法,但下面的方法可以在假设您正在查找的属性类型为number的情况下工作。
var obj = {
k : 57.690636,
A : -2.010575000000017,
type : 'terrible'
};
for (attr in obj)
{
if (typeof obj[attr] === 'number')
{
console.log(obj[attr]);
}
}
您可以使用Object.keys(yourObjectHere)
来获取键的数组,但是对于更旧的浏览器兼容的方法,尝试:
var keys = [], k;
for( k in yourObjectHere) keys.push(k);
如果你愿意,你也可以在有了前两个之后跳出循环。
无论你选择怎么做,你现在可以访问yourObjectHere[keys[0]]
和yourObjectHere[keys[1]]
JavaScript对象的属性顺序由规范定义。这意味着根据实现,键可以以任意顺序返回,因此它们的前两个键可以是对象中的任意两个键。
在
. .列举属性的机制和顺序(步骤6)。第一个算法中的A,步骤7。没有指定第二种情况中的A。
种
如果实现为for-in语句定义了特定的枚举顺序,则必须在该算法的第5步中使用相同的枚举顺序。
最好的方法是稳定这些对象的源,以便始终使用相同的键返回有价值的信息。
随机猜测您使用了一些缩短密钥长度的缩小器。也许不做
var returnedObject = {
lat : '123',
long : '456';
}
你可以这样做:
var returnedObject = {};
returnedObject['lat'] = '123';
returnedObject['long'] = '456';
这将防止最小化更改键名。如果您使用外部服务,您应该问自己这是否是真正的公共数据(意味着打算由您使用的数据),如果不是,那么公共替代方案是什么。
相关文章:
- 如何使用 node.js 比较两个 json 数组
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 访问$.ajax()函数中的两个不同数组
- 正在更新mongod中两个对象内部的数组
- 如何使用javascript合并两个对象数组
- 比较包含多个值对的两个JavaScript数组
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 检查来自不同数组的两个元素的一个属性是否相等
- 如何在javascript中合并两个对象数组
- JavaScript - 合并两个对象数组并根据属性值删除重复数据
- 效率:整数数组的一个子集中两个项之间的最大差值
- 将两个值组合成extjs 4.1的形式
- 如何将中的两个geoJSON功能集合添加到两个层组中
- 在 JQuery 验证中验证多个“数组命名”文件输入和下拉列表
- 在一个区间之间生成两个随机数组
- 使用两个捕获组和JavaScript的replace()函数
- 通过找到两个重复组之一的正则表达式组
- 从Javascript中的两个子数组中获取随机结果
- 如何在一个可选的非捕获组中创建两个捕获组
- paper.js:获取两个层/组的原始像素数据