当前位置: 首页 > 知识库问答 >
问题:

检查数组是否为空或是否存在

邓禄
2023-03-14

当页面第一次加载时,我需要检查image_array中是否有图像,并加载最后一个图像。

否则,我禁用预览按钮,提醒用户按下新图像按钮,并创建一个空数组来放置图像;

问题是else中的image\u数组一直处于激发状态。如果数组存在-它只是覆盖它,但警报不起作用。

if(image_array.length > 0)
    $('#images').append('<img src="'+image_array[image_array.length-1]+'" class="images" id="1" />');
else{
    $('#prev_image').attr('disabled', 'true');
    $('#next_image').attr('disabled', 'true');
    alert('Please get new image');
    var image_array = [];
}

更新在加载html之前,我有这样的东西:

<?php if(count($images) != 0): ?>
<script type="text/javascript">
    <?php echo "image_array = ".json_encode($images);?>
</script>
<?php endif; ?>

共有3个答案

高祺
2023-03-14

怎么样(ECMA 5.1):

if(Array.isArray(image_array) && image_array.length){
  // array exists and is not empty
}
凌永逸
2023-03-14

现代方式,ES5:

if (Array.isArray(array) && array.length) {
    // array exists and is not empty
}

老派的方式:

typeof array != "undefined"
    && array != null
    && array.length != null
    && array.length > 0

紧凑的方式:

if (typeof array != "undefined" && array != null && array.length != null && array.length > 0) {
    // array exists and is not empty
}

一种咖啡方式:

if array?.length > 0

Case Undefined
Undefined variable是一个您尚未为其分配任何内容的变量。

let array = new Array();     // "array" !== "array"
typeof array == "undefined"; // => true

Case Null
一般来说,Null是缺少值的状态。例如,当您丢失或检索某些数据失败时,变量为null。

array = searchData();  // can't find anything
array == null;         // => true

Case not an Array
Javascript具有动态类型系统。这意味着我们不能保证变量持有什么类型的对象。我们有可能不是在谈论Array的实例。

supposedToBeArray =  new SomeObject();
typeof supposedToBeArray.length;       // => "undefined"

array = new Array();
typeof array.length;                   // => "number"

Case Empty Array
现在,由于我们测试了所有其他可能性,我们正在讨论Array的一个实例。为了确保它不是空的,我们询问它包含的元素的数量,并确保它包含的元素多于零。

firstArray = [];
firstArray.length > 0;  // => false

secondArray = [1,2,3];
secondArray.length > 0; // => true
巫马淳
2023-03-14
if (typeof image_array !== 'undefined' && image_array.length > 0) {
    // the array is defined and has at least one element
}

您的问题可能是由于隐式全局变量和变量的混合而发生的。确保在声明变量时使用var

<?php echo "var image_array = ".json_encode($images);?>
// add var  ^^^ here

然后确保以后不会意外地重新声明该变量:

else {
    ...
    image_array = []; // no var here
}
 类似资料:
  • 问题内容: 在Objective-C中,当我有一个数组时 我想检查它是否不为空,我总是这样做: 这样一来,无需检查是否会因为这种情况将导致代码陷入错误,并且非空数组也会这样做。 但是,在Swift中,我偶然发现了一个可选数组: 而且我无法确定要使用哪种条件。我有一些选择,例如: 选项A:在相同条件下检查非用例和空用例: 选项B: 使用解除绑定数组: 选项C: 使用Swift提供的合并运算符: 我不

  • 我正在使用AssertJ的类,我需要实现一个JUnit,它将以动态方式检查可选实例的存在性或空性: 在非参数测试中,我将使用或方法来执行检查,但在本例中,我希望应用类似于的内容。 我在JavaDoc中找不到这样的方法,所以我想知道是否有替代方法(或者我应该只处理?)

  • 问题内容: 我有一个没有元素的数组,我正在尝试检查它是否为空。 例如,为什么下面代码中的if语句的条件永远不会为真? 问题答案: 数组和空数组之间有一个关键的区别。这是对的测试null。 “Empty”在这里没有官方含义。我选择将空定义为具有0个元素: 如果所有元素都是,则“空”的另一种定义是: 要么

  • 问题内容: 如何检查numpy数组是否为空? 我使用了以下代码,但是如果数组包含零,则此操作将失败。 这是解决方案吗? 问题答案: 您可以随时查看属性。它定义为一个整数,并且在数组中没有元素时为零():

  • 问题内容: 以下代码是我一直在使用的从sql数据库中检索用户信息的代码。 但是,当数据库中没有用户名等于LoginUser.Username的条目时,(dt!= null)不会返回false。有没有其他方法可以检查sqlcommand是否成功? 问题答案: 如果没有匹配的记录,您将得到一个空白,因此您可以检查返回的记录数: 并且,稍微偏离主题的地方,请阅读您的问题下方的注释,然后使用Google术