所以我想把一个数字(pullNumb)(由其他地方的其他函数获得)与数组中的一系列数字进行比较。
对于这个例子,让我们说:
var pullNumb = 100;
var morn_T= new Array(6,7,8,9,10,11,12,13,14,15,16,17,18,19);
if(pullNumb>morn_T[1]){ document.write(" xyz ");
}
现在而不是我写出morn_T[1],[2],[3];
等...有没有办法缩短这个?
理想情况下,如果我可以将此范围添加到一个很棒的变量。但是,任何比这更好的事情都要好心的事情。
我在这里找到了一些页面,但是...那个页面对我来说很先进......还有其他语言,所以我迷路了。
我还在学习这个,所以任何提示链接等,我谦虚地接受。
提前感谢。
答案 0 :(得分:1)
var morn_T= new Array(6,7,8,9,10,11,12,13,14,15,16,17,18,19);
for(var i = 0; i < morn_T.length; i++)
alert(morn_T[i]);
Demo(会发送垃圾邮件alert
)。
我建议您阅读JavaScript。 This is one of the best resource around.
答案 1 :(得分:1)
你可以像这样制作一个简单的Range
类型:
var Range = function(a,b) {
this.min = Math.min(a,b);
this.max = Math.max(a,b);
}
Range.prototype.contains = function(x) {
return ((this.min <= x) && (x <= this.max));
};
var oneThroughTen = new Range(1, 10);
oneThroughTen.contains(5); // => true
oneThroughTen.contains(0); // => false
您也可以在最后添加包含/排他性的其他方法。
当然,如果您的范围不连续,那么您最好循环遍历数组的内容并进行比较。
答案 2 :(得分:1)
阵列是否完全排序?
这些document.writes是另一种字符串数组吗?
如果数组恰好向上排序,你可以执行以下操作:(伪代码,我的javascript不是最好的,请根据需要修改)
var i = 0;
do
{
if(PullNumb > morn_t[i])
{ var stringVar = " ";
for(var j = 0; j <= morn_t[i]; j++)
{
stringVar += morn_t[j];
}
break;
}
i++;
}
while( PullNumb < morn_t[i] && i < morn_t.Length());
所以基本上如果对数组进行排序,则循环遍历它。继续,直到数组不再,或直到PullNumb大于该数组值。
如果pullnumb大于该数组值,则从数组的开头开始,并将每个对应的字符串值附加到stringVar变量。
但是,如果数组只是随机数,并且字符串(来自document.write)不在任何类型的数组中,我认为使用switch语句要快一些。
答案 3 :(得分:1)
您想要的概念可能是Array.filter https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter它并不存在于每个浏览器中,但上面的页面解释了如何实现它
以下代码返回一个小于pullNumb
的所有数字的数组var biggerThan = morn_T.filter( function(a){ return pullNumb < a; } );
// Now you can just iterate through the filtered array
for (var i=0; i < biggerThan.length; i ++) { console.log( biggerThan[i] ); }