物件的屬性及屬性值遍歷
阿新 • • 發佈:2019-01-31
題目描述
找出物件 obj 不在原型鏈上的屬性(注意這題測試例子的冒號後面也有一個空格~)1、返回陣列,格式為 key: value
2、結果陣列不要求順序示例1
輸入
複製var C = function() {this.foo = 'bar'; this.baz = 'bim';}; C.prototype.bop = 'bip'; iterate(new C());
輸出
複製["foo: bar", "baz: bim"]
我的解答:
不過提交通不過。原因:hasOwnProperty()方法使用錯誤,語法object.hasOwnProperty(key);
正確解答:
function iterate(obj) { var arr=[]; for(var item in obj){ if(obj.hasOwnProperty(item)){ arr.push(item+': '+obj[item]); //注意這裡所說的空格 } } return arr; }
補充知識點:
hasOwnProperty()
函式用於指示一個物件自身(不包括原型鏈)是否具有指定名稱的屬性。如果有,返回true
,否則返回false
。
該方法屬於Object
物件,由於所有的物件都"繼承"了Object的物件例項,因此幾乎所有的例項物件都可以使用該方法。
IE 5.5+、FireFox、Chrome、Safari、Opera等主流瀏覽器均支援該函式。
語法
object.hasOwnProperty( propertyName )
引數
引數 | 描述 |
---|---|
propertyName | String型別指定的屬性名稱 |
返回值
hasOwnProperty()
函式的返回值為Boolean型別。如果物件object
propertyName
的屬性,則返回true
,否則返回false
。