我有一个嵌套对象数组:
const array =[
{
"id": 1,
"time": {
"timezone": "2021-09-22T05:36:22.484Z"
"city": "Perth"
"country:: "Australia
"date": "2021/10/10"
}
},
{
"id": 2,
"time": {
"timezone": "2021-10-22T03:25:26.484Z"
"city": ""
"country: "Americas"
"date": "2021/10/10"
}
},
{
"id": 3,
"time": {
"timezone": "2021-09-27T02:43:26.564Z"
"city": ""
"country: ""
"date": "2021/10/10"
}
}];
我想检查time对象中的每个值,看看是否存在空字符串,而不必使用多个||语句。
我试过使用lodash:
if(array.find((k)=> _.isEmpty(k.timezone)) || array.find((k)=> _.isEmpty(k.city)) || array.find((k)=> _.isEmpty(k.country)) || array.find((k)=> _.isEmpty(k.date))) {
//do something
} else {
//do something else
}
这似乎做的技巧,但试图找到一个简洁和更清晰的方式来做到这一点,因为可能有更多的值在时间对象,最好在es6。
检查time
子对象的Object.values
中的.some
是否包含空字符串
if (array.some(
k => Object.values(k.time).includes('')
)) {
// do something
} else {
// do something else
}