繁体   English   中英

我在将对象添加到数组时遇到问题

[英]I have problem with adding my object to array

所以在创建一个对象之后,我想将它添加到一个数组中,但似乎它不起作用只添加了最后一个并且它循环了。

我希望mang[0]的输出是('Samsung S8','s0','$200')但它不是。

它只显示最后一个('Samsung A60','s2','$400') mang[1]也是一样。

var mang=[];
 var Phone = {
            Name:'',
            Img:'',
            Price:'',
            them :function(name,img,price){
                this.Name=name;
                this.Img=img;
                this.Price=price;
                mang.push(Phone);
            }
        };
Phone.them('Samsung S8','s0','$200');
Phone.them('Samsung S10','s1','$300');
Phone.them('Samsung A60','s2','$400');

嗨,请尝试此解决方案

var PhoneList = [];
function Phone(Name,Img,Price){
    this.Name = Name; 
    this.Img = Img;
    this.Price = Price ; 
}


Phone.prototype.addToArray = function(){
    PhoneList.push(this); 
}

let phone1 = new Phone('Samsung S8','s0','$200');
phone1.addToArray();
let phone2 = new Phone('Samsung S10','s1','$300');
phone2.addToArray();
let phone3 = new Phone('Samsung A60','s2','$400');
phone3.addToArray();

console.log(PhoneList);

我希望它有帮助。

您可以考虑在一个class封装该功能,您可以在其中使用一种方法 ( add ) 添加电话列表,并使用另一种方法 ( logPhones ) 记录已添加的电话列表。

 class Phones { constructor() { this.phoneList = []; } add = (name, img, price) => { const phone = { name, img, price }; this.phoneList.push(phone); } logPhones = () => { console.log(this.phoneList); } } const phones = new Phones(); phones.add('Samsung S8','s0','$200'); phones.add('Samsung S10','s1','$300'); phones.add('Samsung A60','s2','$400'); phones.logPhones();

暂无
暂无

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

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