javascript - 如果索引不存在,则获取对象中的数据

标签 javascript algorithm performance data-structures javascript-objects

我有一个包含这样数据的对象:

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/

相关文章:

javascript - 在javascript中访问 session 列表

java - 在 Java 中获取集合的幂集

python - 高效解析 100 GB 的 xml 文件

企业中的WCF,您的经验有何指点?

Javascript + 修改字符串

javascript - 本地存储 IE10。该系统找不到指定的路径

javascript - Vue.js - 从指令发出事件

algorithm - 查找二叉树中最大独立集的大小 - 为什么错误的 "solution"不起作用?

python - 如何通过矩阵numpy向量化循环

c++ - 为什么使用 'if' 语句可以提供更好的性能?