需求
在代碼中, 會遇到這樣的問題:
有時,后臺傳來的是
[{"id":001,"name":"張三"},{"id":002,"name":"李四"}]
但只有一條數(shù)據(jù)時: {"id":001,"name":"張三"}
當(dāng)我們用 for(var i in json)時, 如果是第一種形式, 那沒什么問題,就是取的我們想要的數(shù)據(jù).比如:
for(var i in json){
console.log("學(xué)號:"+json[i].id);
console.log("姓名:"+json[i].name)
}
但是如果遇到第二種格式的數(shù)據(jù).for in 取出來的就是
for(i in cc){
console.log(cc[i].id)
}
//會輸出undefined
讓我們來看看 i 現(xiàn)在是什么
for(i in cc){
console.log(i)
}
//id
//name
解決方案
這樣,我們就很好做了,只需要判斷 i 是否為正整數(shù).
Number(i)將i轉(zhuǎn)換為數(shù)字, 如果是其它字符,將轉(zhuǎn)換出來是NaN..
for(var i in json) {
//這里判斷是否是單個json
if(!isNaN(Number(i))) {
console.log(json[i].id)
} else {
console.log(json.id)
}
}