<span style="font-family: 'Microsoft YaHei'; line-height: 18.1818px; white-space: pre-line; background-color: rgb(255, 255, 255);">有一個對象數組,裡面儲存著通訊錄。</span>
函數 lookUp 有兩個參數: firstName 和prop 。
函數將會檢查通訊錄是否存在 firstName值 和 prop 屬性。
如果它們都存在,函數返回prop屬性對應的值。
如果firstName 值不存在,返回"No such contact"。
如果prop 屬性不存在,返回"No such property"。
//Setupvar contacts = [ { "firstName": "Akira", "lastName": "Laine", "number": "0543236543", "likes": ["Pizza", "Coding", "Brownie Points"] }, { "firstName": "Harry", "lastName": "Potter", "number": "0994372684", "likes": ["Hogwarts", "Magic", "Hagrid"] }, { "firstName": "Sherlock", "lastName": "Holmes", "number": "0487345643", "likes": ["Intriguing Cases", "Violin"] }, { "firstName": "Kristian", "lastName": "Vos", "number": "unknown", "likes": ["Javascript", "Gaming", "Foxes"] }];function lookUp(firstName, prop){ for (var i in contacts) {if (contacts[i].firstName === firstName && prop in contacts[i]) return contacts[i][prop];} for ( i in contacts) { if (prop in contacts[i] ===false) return "No such property"; } for ( i in contacts) { if (contacts[i].firstName !== firstName) return "No such contact";} }// Change these values to test your functionlookUp("Akira", "address");
關於屬性名稱和屬性值:
在這個案例中,contacts[i].firstName 指的是屬性值,prop in contacts[i]提取的是屬性名稱,由於是嵌套數組形式({[屬性名稱:值],[屬性名稱:值]},所以需要添加i,遍曆i組的屬性名稱和屬性值。
以下方法轉自某網友的代碼,使用hasOwnProperty:是用來判斷一個對象是否有你給出名稱的屬性或對象。不過需要注意的是,此方法無法檢查該對象的原型鏈中是否具有該屬性,該屬性必須是對象本身的一個成員。
<span style="font-family:Microsoft YaHei;">for(var i=0;i<contacts.length;i++){if(contacts[i].firstName==firstName){if(contacts[i].hasOwnProperty(prop)){return contacts[i][prop];}else{return "No such property";}}}return "No such contact";</span>