我通過數據的循環,在一個完美的世界會是什麼樣子:解析數據,並檢查空/不存在的項目
- item.dataone
- item.datatwo
- 項目。 datathree
- item.datafour
然而,有時一個或一個以上這些項目根本不存在,因此該文件可能看起來像(或更糟):
- item.dataone
- item.datathree
- item.datafour
我宣佈瓦爾:
var one;
var two;
var three;
var four;
我檢查使用簡單的存在功能類似的項目所以:
$.each(data.d.results, function (index, item) {
one = exists(item.dataone);
two = exists(item.dataone);
three = exists(item.dataone);
four = exists(item.dataone);
}
function exists(item){
if(item){
console.log(item);
return item;
}
else{
console.log("none");
return "none";
}
}
如果一個項目存在,但空的,但是沒有說明,當我到了一個不存在的項目(item.datatwo從上面的例子清單),我得到的錯誤:
cannot read description of NULL
我猜測我不清楚爲什麼我的支票無法使用?如果它不存在,則拋出錯誤的權利,並給var「無」?
如果項目不存在於我的循環中,該怎麼辦?
困惑的noob。
編輯:這裏是一些真實的數據例如:
$.ajax({
url: "SITE/_api/Web/Lists/GetByTitle('Green%20Teams')/items",
type: "GET",
headers: {
"accept": "application/json;odata=verbose"
},
success: function (data) {
$.each(data.d.results, function (index, item) {
title = item.Title;
regionname = item.Region_x0020_Name;
forestorunit = item.Forest_x0020_or_x0020_Unit;
districtorunit = item.District_x0020_or_x0020_Unit;
orglocation = item.Org_x0020_Location;
members = item.Members;
greenteamdescription = item.Green_x0020_Team_x0020_Website.Description;
greenteamurl = item.Green_x0020_Team_x0020_Website.Url;
locationcity = item.Location_x0020_City;
locationstate = item.Location_x0020_State;
locationzip = item.Location_x0020_Zip;
});
},
error: function (error) {
alert(JSON.stringify(error));
}
});
<d:Title>NNFG Green Team</d:Title>
<d:Region_x0020_Name>02 - Rocky Mountain Region</d:Region_x0020_Name>
<d:Forest_x0020_or_x0020_Unit>07 - Nebraska NF</d:Forest_x0020_or_x0020_Unit>
<d:District_x0020_or_x0020_Sub_x002 m:null="true" />
<d:Org_x0020_Location>Forest</d:Org_x0020_Location>
<d:Members m:null="true" />
<d:Green_x0020_Team_x0020_Website m:null="true" />
<d:Location_x0020_City>Chadron</d:Location_x0020_City>
<d:Location_x0020_State>NE</d:Location_x0020_State>
<d:Location_x0020_Zip>69337</d:Location_x0020_Zip>
<d:Latitude m:type="Edm.Double">42.829419</d:Latitude>
<d:Longitude m:type="Edm.Double">-102.999907</d:Longitude>
<d:Title>GMFL NF Sustainability Team</d:Title>
<d:Region_x0020_Name>09 - Eastern Region</d:Region_x0020_Name>
<d:Forest_x0020_or_x0020_Unit>20 - Green Mtn and Finger Lakes NFs</d:Forest_x0020_or_x0020_Unit>
<d:District_x0020_or_x0020_Sub_x002 m:null="true" />
<d:Org_x0020_Location>Forest</d:Org_x0020_Location>
<d:Members>John and Sal</d:Members>
<d:Green_x0020_Team_x0020_Website m:type="SP.FieldUrlValue">
<d:Description>GMFL NF Sustainability Team Intranet Site</d:Description>
<d:Url>http://fsweb.gm.r9.fs.fed.us/library2/sustainability/index.htm</d:Url>
</d:Green_x0020_Team_x0020_Website>
<d:Location_x0020_City>Rutland</d:Location_x0020_City>
<d:Location_x0020_State>Vermont</d:Location_x0020_State>
<d:Location_x0020_Zip>05701</d:Location_x0020_Zip>
<d:Latitude m:type="Edm.Double">43.615355</d:Latitude>
<d:Longitude m:type="Edm.Double">-72.922433</d:Longitude>
的問題是Green_x0020_Team_x0020_Website要麼有說明和URL或不...存在,或不...
你的支票是一個有參數的函數。但是,如果項目不存在,你如何將它作爲參數傳遞。 – Craicerjack
正確的權利...是完全有道理的。所以如果它不存在,那麼是什麼?我如何爲其他變量指定我的變量? – jasonflaherty
@Craicerjack你可以傳遞undefined作爲參數 – SimpleJ