我有一个包含这样数据的对象:
var data = {
'4': [1, 2, 3],
'5': [1, 2, 3],
'6': [1, 2, 3],
'7': [1, 2, 3],
'8': [1, 2, 3],
'9': [1, 2, 3],
'10': [1, 2, 3],
'11': [1, 2, 3],
'12': [1, 2, 3],
'15': [1, 9, 3],
'18': [1, 2, 3],
'21': [1, 8, 3],
'24': [1, 2, 3],
'30': [1, 2, 3],
'36': [1, 2, 3],
'42': [1, 20, 3]
}
现在我想像这样访问数据
var result = data[i][1];
如果 i = 15
,这会给我一个 9
的结果。
但是如果给定的索引不存在,我总是需要获取下一个较低的索引。所以,如果 i = 16
,结果也应该是 9
。如果 i = 23
,则结果为 8
,对于 i = 999
,结果为 20
。我该怎么做?
最佳答案
您将不得不向下循环在数组中搜索该属性。假设 input
是您要查找的那个,
for (var i = input; i > 0; i--) { // Looping incrementing down
if (data.hasOwnProperty(i)) {
result = data[i][1];
break;
}
}
hasOwnProperty
方法检查您的数据数组是否有可用的索引,如果有,则在设置 result
后跳出循环。
关于javascript - 如果索引不存在,则获取对象中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33088595/