JavaScript代码问题:我正在将对象转换为数组

JavaScript code issue : I am converting object to array

本文关键字:对象 转换 数组 代码 问题 JavaScript      更新时间:2023-09-26

我正在将JavaScript对象转换为数组,但结果我得到了一个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点赞"、"Facebook推荐"、"脸书发送"、"推特推特","领英分享","LinkedIn推荐","Google++1","谷歌+Share",null]

这是一个小提琴的例子

添加对自己属性的检查(不是从Object proptotype继承的):

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

添加hasOwnProperty检查。

for (var i in this) {
    if (this.hasOwnProperty(i)) {
        arr.push(this[i]);
    }        
}