如果当前值不是数组中的值,则打印文本

时间:2015-08-07 06:41:54

标签: javascript jquery arrays loops

我正在尝试打印不在数组中的数字序列。

我想这样的事情可能会这样:

<script>
p = [3, 7, 19, 22, 5];
for (var i = 0; i <= 30 && i != (p array values); i++){
    $('body').append(i)
    }; 
</script>

4 个答案:

答案 0 :(得分:3)

以下是我认为您正在尝试做的事情(打印0到30之间不属于数组的数字)。

var p = [3, 7, 19, 22, 5];
for (var i = 0; i <= 30; i++){
    if ($.inArray(i, p) === -1) $('body').append(i + " ");
}; 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

由于您已经包含了jQuery,我使用jQuery's inArray function来确定该值是否是数组的一部分。

答案 1 :(得分:3)

这是一个简单的循环:

p = [3, 7, 19, 22, 5];
for (var i = 0; i <= 30; i++) {
  if (p.indexOf(i) === -1) { // not exist in the array
    $('body').append(i + ", ");
  }
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<body></body>

  

indexOf()方法返回可在数组中找到给定元素的第一个索引,如果不存在则返回-1。

Array.prototype.indexOf()。这是原生JS中非常方便的方法。

答案 2 :(得分:0)

我认为您需要在if语句中执行此操作。

Here是一个工作小提琴。

p = [3, 7, 19, 22, 5];
for (var i = 0; i <= 30; i++) {
 if($.inArray(i, p) == -1){
        $("body").append(i + "<br>");
    }
}; 

答案 3 :(得分:0)

尝试使用jQuery.inArray()函数,如果它没有在数组中找到值,则返回-1 =)

<script>
    p = [3, 7, 19, 22, 5];
    for (var i = 0; i <= 30; i++){
        if($.inArray( i , p) == -1){
            $('body').append(i)
        }            
    }; 
</script>