我有一个.json,它具有以下格式:data [0 ... n],其中每个位置都有一个具有以下格式的对象:
{foto1, foto2, foto3 ... fotoN}
这是一张图片,供您了解json如何出现在我身上:
add a photo where you can see the json file
。有些带有价值,但有些却像这样:
photo1:
就是说,它至少不表示它是否为空,就像这样的字符串:“”,然后当我尝试询问它是否为空时,它对我不起作用,这意味着它是空白?还可以检查它是否为undefined或为null,并且都不为空。
答案 0 :(得分:0)
您应检查JS中逻辑运算符的定义:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators
逻辑非(!):
以下代码显示了!的示例。 (逻辑非)运算符。
n1 = !true // !t returns false
n2 = !false // !f returns true
n3 = !'' // !f returns true
n4 = !'Cat' // !t returns false
双重NOT(!!):
可以串联使用两个NOT运算符来显式强制将任何值转换为相应的布尔基元。转换基于值的“真实性”或“虚假性”(请参阅“真实性”和“虚假性”)。
可以通过布尔函数完成相同的转换。
n1 = !!true // !!truthy returns true
n2 = !!{} // !!truthy returns true: any object is truthy...
n3 = !!(new Boolean(false)) // ...even Boolean objects with a false .valueOf()!
n4 = !!false // !!falsy returns false
n5 = !!"" // !!falsy returns false
n6 = !!Boolean(false) // !!falsy returns false
具体针对您的情况:
!data[n].photo //will truthy for 'null, 'undefined' and an empty string
!!data[n].photo //will falsey for 'null, 'undefined' and an empty string
答案 1 :(得分:0)
您可以过滤掉没有值的属性
twitter-2019.06.09-1
在调用api的映射中使用它替换数据对象
const nonEmptyProps = obj => Object.keys(obj).reduce((result, prop) => {
const value = obj[prop];
if (value) {
result[prop] = value;
}
return result;
}, {});
console.log(
nonEmptyProps(
{
prop1: 'has value',
prop2: null,
prop3: 'another value',
prop4: undefined,
prop5: ''
}
)
);