实际情况,请求网络接口时,当数据为空时,一般会返回空对象或者是空数组的情况,我们需要当数据是空数组/空对象时,做出一些逻辑处理
由于空数组/空对象的Boolean都是true,无法我们无法直接使用Boolean来判断.
让一个变量时空对象/空数组,能过返回一个false的解决办法:
针对数组
example1:利用数组长度的Boolean值来判断
useEffect(() => {
let arr = [1,4,5,6,7,7,8,8,];
let test = [];
console.log('打印空数组的长度', test.length, '长度的布尔值', Boolean(test.length));
console.log('打印非空数组的长度', arr.length, '长度的布尔值', Boolean(arr.length));
},[])
example2:根据数组的JSON字符串是否返回[];
useEffect(() => {
let arr: any[] = [1, 4, 5, 6, 7, 7, 8, 8,];
let test: any[] = [];
console.log('打印空数组', JSON.stringify(test) === '[]');
console.log('打印非空数组', JSON.stringify(arr) === '[]');
}, [])
针对对象
example1:根据对象的属性长度
example2:根据对象的JSON字符串是否返回{}
let empty = {};
let obj = {
name: 'lop',
age: 20
}
// 根据对象的属性长度
console.log('打印空对象的属性的长度', Object.keys(empty).length);
console.log('打印非空对象的属性的长度', Object.keys(obj).length);
// 根据对象的JSON字符串是否返回{}
console.log('打印空对象的JSON字符串', JSON.stringify(empty) === '{}');
console.log('打印非空对象的JSON字符串', JSON.stringify(obj) === '{}');