繁体   English   中英

如何在javascript类中制作数组?

[英]How to make array at javascript class?

最近我正在学习制作javascript类,我看到其他人像这样制作类

var item = {
     'a':{'b':1000,'c':2000,'d':3000} , //how to make a variable become an array?
     myfunction : function(){
         console.log(item.a.b); //and output item.a[1]?
     }
 };
 item.myfunction();

但是,它可能使变量a数组? 并像这样输出一个变量item.a[1] ?我试过了

var a=new Array('1000','2000','3000')但是错误,我需要正确的语法。

var item = {
    'a': [1000, 2000, 3000],
    myfunction: function () {
        console.log(this.a[1]);
    }
};

但这不是一个类,也没有“变量 a”。

'a':[1000,2000,3000]

console.log(item.a[0]); // 1000
console.log(item.a[2]); // 3000

阅读更多: http : //www.elated.com/articles/javascript-array-basics/

您有两种方法,具体取决于您是想将“a”转换为数组还是只想将“a”转换为数组。

第一种方法是通过函数运行它

function toArray(object) {
    var array = new array();
    for (key in object) {
        if (object.hasOwnProperty(key)) {
            array.push(object);  // This is alternative for indexed array
            array[key] = object; // This is for an associative array
        }
    }
    return array;
}

也许让您的“类”调用此函数并将返回值分配给“a”

var item = {
    'a':{'b':1000,'c':2000,'d':3000} , //how to make a variable become an array?
    myfunction : function(){
        this.a = toArray(this.a);
        console.log(this.a[1]) // If you do indexed
        console.log(this.a.b); // If you do associative
    }
};

item.myfunction();

第二种方法由@ahren 解释,它只是通过 [...] 值而不是 {...} 将“a”定义为数组

您还可以查看我自己提出的关于 JavaScript 中的 OOP 的问题,从 TJ 那里得到了关于私有方法的很好的答复。

JavaScript OOP 陷阱

不知道这是否是您想要的,但应该有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM