我很難過。如何處理Javascript空對象?
這是代碼:
const clientInfoPromise = buildPromiseMethod
clientInfoPromise.then((clients) => {
console.log('clients ' + JSON.stringify(clients))
console.log(clients.typeOf)
console.log(_.keys(clients))
這是輸出:
clients {}
undefined
['undefined']
我想_.keys(客戶端),以返回一個空數組,而不是與所述串的陣列「未定義」 。 _.isEmpty(clients) ? [] : _.keys(clients)
不起作用,因爲_.isEmpty
返回false
。
ClientInfoPromise在此定義:
static buildPromiseMethod(cids) {
if (condition) {
// fetch data
const data = [data,data1,data2]
return Promise.resolve(_.zipObject(cids, data));
} else {
const clients = _(cids)
.indexBy()
.mapValues(() => {
return undefined; //contains empty data
})
.value();
return Promise.resolve(clients);
}
}
cids
可以undefined
,[]
,或[1,2,3]
(數字的陣列)。
看起來你錯過了第一個代碼塊末尾的大括號和parens。 – Eric
hmm? '_.keys(undefined).length === 0' – Brian
如果這些答案對您有幫助,請接受其中之一。 – 2015-10-24 13:56:06