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; }