Добавить объект в массив с синтаксисом класса в JavaScript - PullRequest
2 голосов
/ 28 октября 2019

Я хочу передать объект в массив со следующим классом и методами:

class PieData {
  constructor(data = [], name, y) {
    this.data = data;
    this.name = name;
    this.y = y;
  }
  addData() {
    this.data.push({
      name: this.name,
      y: this.y
    });
  }
}

const browsers = new PieData();

browsers.addData("Chrome", 25);
browsers.addData("Firefox", 30);

console.log(browsers);

The data should look like this:

let data = [
  {
 name: "Chrome",
 y: 61.41
   },
   {
 name: "Internet Explorer",
 y: 11.84
   }
]

Может кто-нибудь помочь мне, как это сделать? Это приводит к неопределенности :-(. Я довольно новичок в программировании. Думаю, я не совсем понимаю ключевое слово "this".

Ответы [ 2 ]

3 голосов
/ 28 октября 2019

Вместо того, чтобы добавить значения в конструктор, вы должны отправить значения в функцию addData

class PieData {
    constructor() {
        this.data = [];
    }
    addData(name, y) {
       this.data.push({ name, y });
    }
}
1 голос
/ 28 октября 2019

Попробуйте объявить переменную и использовать их в функции:

class PieData {
    constructor(data = [], name, y) {
      this.data = data;
      this.name = name;
      this.y = y;
    }

    addData(name, y) {
        this.data.push({ name: name, y: y });
    }
 }



const browsers = new PieData([], 'test', 'y variable');

browsers.addData("Chrome", 25);
browsers.addData("Firefox", 30);

console.log(browsers);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...