不能在json对象中选择第一个值
Can't select first value in json object
我似乎无法选择json对象中的第一个值。
我试过array[0][0]
,但它返回undefined
。
[ { 'Room 1': 11017,
'Room 2': 2651,
'Room 3': 1,
'Room 4': 2,
'Room 5': 1,
'Room 6': 1,
'Room 7': 3,
'Room 8': 5,
'Room 9': 3661,
'Room 10': 2 } ]
您需要使用字符串访问键,而不是使用索引:
array[0]['Room 1']
编辑:有一种基于定义顺序访问键的方法。然而,虽然Object.keys
的几乎所有实现目前都以正确的顺序返回,但规范并没有要求这样做:
var keys = Object.keys( array[0] );
var fifth = keys[4];
var value = array[0][fifth];
这是因为它是数组内的对象。你可以通过使用array[0]
来访问数组的元素,但是对于一个对象,它必须是object.key
或object["key"]
。
为了使这个数据结构更动态,我建议这样拆分它:
roomNumbers = [11017, 2651, 1, 2, 1]...(and so on)
这样,您就可以在不事先知道房间的情况下访问一个号码。
您有一个包含1个对象的数组,该数组有键而没有索引。所以引用第一个键:
array[0]['Room 1']
如果您需要在不知道键名的情况下拉,您可以通过Object.keys(obj)
;
var availableKeys = Object.keys(array[0]);
var val = array[0][availableKeys[0]]; //replace availableKeys index with what you need
由于元素是一个对象,它试图检索属性0
,即undefined
。因此,您需要使用属性名称来获取值(例如:array[0]['Room 1']
)。
您可以使用 Object.keys()
获取键数组,然后使用该数组获取值。但是不能保证顺序,因为 Object.keys()
返回键的顺序是任意的。
var array = [{
'Room 1': 11017,
'Room 2': 2651,
'Room 3': 1,
'Room 4': 2,
'Room 5': 1,
'Room 6': 1,
'Room 7': 3,
'Room 8': 5,
'Room 9': 3661,
'Room 10': 2
}]
console.log(
array[0][Object.keys(array[0])[0]]
);
UPDATE:如果你想按一定的顺序得到它,那么使用嵌套数组代替。
var array = [[
11017,
2651,
1,
2,
1,
1,
3,
5,
3661,
2
]]
console.log(
array[0][0]
);
相关文章:
- 选择多个实例中的第一个
- 使用jquery选择元素附近的第一个h2
- jquery-select2显示默认选择的第一个值
- 使用jQuery从TR父级中选择第一个TD子级
- 文本框和选择框组合单个文本中的值(第一个tb值,然后是sb值)
- 如何在组合中选择第一个值
- 如何在数组的所有
中选择所有第一个 TD - 如何使用Jquery选择第一个td元素及其文本
- 不要使用jquery选择第一个li元素
- 如何选择第一个li
- 如何选择第一个td
- 数组总是选择第一个值,而不是特定的值
- 如何从循环中选择第一个
- jQuery上点击选择第一个类,而不是所有的类
- 始终选择第一个值Select vue.js
- 如何使用jQuery选择第一个父DIV
- 如何在元素的类定义列表中选择第一个类
- HTML中的TAB:默认选择第一个TAB
- 不能在json对象中选择第一个值
- 为什么它总是在AngularJS中选择第一个TD单元格