如果我在javascript中有这个数组:
array[1] = 'blue';
array[25] = 'green';
array[50] = 'yellow';
array[75] = 'orange';
array[100] = 'red';
我有:
number = 35
我该怎么做:
output = 'green';
答案 0 :(得分:5)
如果您的阵列设置如此,包括所有空插槽,您可以执行以下操作。
var i = 35;
while ( ! array[--i]) {}
array[i]; // "green"
但是,如果您尝试显示这些数字与颜色之间的关系,则应使用对象。
答案 1 :(得分:1)
使用hasOwnProperty()
方法检查index
是否真的是array
的属性。(对于两个数组以及array-like
个对象)它是{{ 1}}仅当在该特定索引处分配了值时。 true
下方的第一个有效索引将包含35
。
green
答案 2 :(得分:0)
var firstLessThanX = function (x) {
var array = [100, 75, 50, 25, 1];
for (var i = 0; i < array.length; i += 1) {
if (array[i] < x) {
return array[i];
}
}
return 'All values greater than or equal to ' + x;
};
array[ firstLessThanX(35) ] // 'green'
答案 3 :(得分:0)
您可以遍历数组中的项目,并检查哪个项目小于该数字,最接近该数字:
var array = [];
array[1] = 'blue';
array[25] = 'green';
array[50] = 'yellow';
array[75] = 'orange';
array[100] = 'red';
var n = 35, min = null, value;
for (x in array) {
var diff = n - x;
if (diff >= 0 && (min == null || diff < min)) {
min = diff;
value = array[x];
}
}
// show result is Stackoverflow snippet
document.write(value);
&#13;