我如何调用数组中的一系列数字?

时间:2011-09-22 20:40:39

标签: javascript

所以我想把一个数字(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];等...有没有办法缩短这个?

理想情况下,如果我可以将此范围添加到一个很棒的变量。但是,任何比这更好的事情都要好心的事情。

我在这里找到了一些页面,但是...那个页面对我来说很先进......还有其他语言,所以我迷路了。

我还在学习这个,所以任何提示链接等,我谦虚地接受。

提前感谢。

4 个答案:

答案 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] ); }