0

JavaScriptオブジェクトを配列に変換していますが、結果として1つ取得していますnull

ここに私のコード

<div id="a"></div>

Object.prototype.toArray = function(){
    var arr = [];
    for (var i in this) {
        arr.push(this[i]);        
    }
    return arr;
} 

var providers = {
            facebooklike: "Facebook Like",
            facebookrecommend : "Facebook Recommend",
            facebooksend : "Facebook Send",
            twittertweet : "Twitter Tweet",
            linkedinshare : "LinkedIn Share",
            linkedinrecommend : "LinkedIn Recommend",
            googleplusplusone : "Google+ +1",
            googleplusshare : "Google+ Share"
        };

var a = document.getElementById("a");
a.innerHTML = JSON.stringify(providers.toArray());

私の結果は

["Facebook Like"、 "Facebook Recommendation"、 "Facebook Send"、 "Twitter Tweet"、 "LinkedIn Share"、 "LinkedIn Recommendation"、 "Google+ +1"、 "Google+ Share"、null]

これがフィドルの例です

4

2 に答える 2

4

独自のプロパティのチェックを追加します (Object proptotype から継承されません):

Object.prototype.toArray = function(){
    var arr = [];
    for (var i in this) {
        if(this.hasOwnProperty(i))
            arr.push(this[i]);        
    }
    return arr;
} 
于 2012-09-13T09:53:55.753 に答える
3

hasOwnPropertyチェックを追加します。

for (var i in this) {
    if (this.hasOwnProperty(i)) {
        arr.push(this[i]);
    }        
}
于 2012-09-13T09:53:32.637 に答える