js判断数组是否为空 判断任意变量是否为空(非空判断)

1、一般情况下判断一个数组是否为空可以用(明确该字段为数组类型)

arr.length == 0

来判断

但是还有一种情况时不能确定数组是否定义,比如接口传回的数据中如果没有这个字段,就会报错

Cannot read properties of undefined (reading 'length')

 

 这种情况下length就不再适用

可以使用arr != true 来判断,数组为空数组或者未定义都适用,返回结果为true即这个数组为空

 2、isEmpty 返回值为true表示为空(NaN , [] , {} , undefined , null , " " ),false为有值

/**
 * 判断是否有值,0不发生转换,数字0和字符串0都是false,即 不为空
 * 空数组也返回true,即为空
 * @param v
 * @returns {boolean}
 */function isEmpty(v) {
  switch (typeof v) {
    case 'undefined':
      return true;
    case 'string':
      if (v.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true;
      break;
    case 'boolean':
      if (!v) return true;
      break;
    case 'number':
      if (isNaN(v)) return true; // 0不发生转换,数字0和字符串0都是false,即 不为空
      break;
    case 'object':
      if (null === v || v.length === 0) return true;
      for (var i in v) {
        return false;
      }
      return true;
  }
  return false;
}

 

posted @ 2022-04-06 16:56  从入门到入土  阅读(5418)  评论(0编辑  收藏  举报