создание нескольких экземпляров объекта в массиве - PullRequest
0 голосов
/ 12 мая 2018

Эй, я работаю над игрой, в которой на игровом поле появляется множество разных врагов. Я создал вражеский объект со случайными скоростями и местоположениями, и я поместил этот объект в массив.

Как теперь я могу умножить количество врагов в моем массиве?

const allEnemies = []; 

let bugSpeed = randomNumber(5, 25) * 10;
let bugRow = randomNumber(1, 4);
enemy = new Enemy(bugRow, bugSpeed);

allEnemies.push(enemy); 

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Публикация чистой версии того же самого javascript;

Enemy.prototype.multiply = function(multiplyBy){
   var that = this;
   Array.from(Array(multiplyBy), function(){
      var newEnemy = Object.assign(new enemy, that);
      allEnemies.push(newEnemy);
   });
}
0 голосов
/ 12 мая 2018

Вы можете добавить метод multiply в свой класс, который принимает число и возвращает клоны текущего экземпляра, используя метод Array.from.

const allEnemies = [];
class Enemy {
  constructor(row, speed) {
    this.row = row;
    this.speed = speed;
  }

  multiply(number) {
    return Array.from(Array(number), () => {
      return Object.assign(new Enemy, this);
    })
  }
}

const enemy = new Enemy(1, 3);

allEnemies.push(...enemy.multiply(5));
allEnemies[1].speed = 123;
console.log(allEnemies[1].multiply(3));
console.log(allEnemies)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...