Как проверить, последняя ли итерация в круговой структуре? (Node.js) - PullRequest
0 голосов
/ 16 октября 2019

Цели

Проверьте и запишите единственную последнюю итерацию.

Объяснение

У меня есть класс с именем Terminal, который получает object в качестве параметра и сохраняетв локальный массив с именем cache.

Для упрощения я разместил только 1 экземпляр в качестве примера с классом Terminal. Я хочу, чтобы вы помнили, что за сценой больше экземпляров каждого класса. (Слайдер, Галерея и т. Д.)

Это код:

// button.js
import Terminal from './widget.mjs';

class Button {
    constructor(type, color, bus) {
        this.type = document.querySelector(type);
        this.color = color;
        /* #1 Pass the parameters by using this keyword */
        this.bus = Terminal.init(this);
    }
}

let userButton = new Button('.button', 'blue');

// Terminal.js
export default class Terminal {
     static init(obj) {
        /* #2 Define Variable */
        this.obj= obj;

        /* #3 Singleton */
        if (!Terminal.ins) {
            Terminal.ins = new Terminal(this.obj);
        }

        /* #4 Define the cache (Originally from Terminal.ins) */
        this.cache = Terminal.ins.cache;

        /* #5 Push the parameter & Log it */
        this.cache.push(this.obj);
        console.log(this.cache);
    }
    constructor(data) {
        /* #3-1 Define an array */
        this.cache = [];
    }
}

Вы можете проверить полный код, включая остальные экземпляры, в myRepl .

Когда код выполняется, передайте 2 параметра type, color как один object статическому методу Terminal. Затем создайте экземпляр new Terminal, если его нет. После создания нажмите object на cache для хранения данных.

Это результат приведенного выше примера:

enter image description here

Когда я передам больше objects в Terminal, следующий результат будет выглядеть следующим образом:

enter image description here

Теперь я хочувызывать только последний результат (который является третьим журналом только этого изображения), который содержит все 3 объекта.

Проблема

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

Singleton Pattern не помогает в этом случае, потому что Singleton Pattern всегда указывает только сначала Terminal instance независимо от того, сколько я его верну.

Есть ли способы сделать этопроблема?

Спасибо за внимание.

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