Можно ли положить sh в массив из набора? - PullRequest
0 голосов
/ 07 февраля 2020

Как мне go сделать это, могу ли я даже сделать sh или есть какой-то другой метод, который я могу использовать для добавления набора в мой глобальный массив?

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

Как будто набор делает то, что должен, но я не уверен, сохранится ли он в фактическом массиве, который я смогу вызвать позже или нет.

Я не думаю, что pu sh в конце нужен, или он что-то делает в данный момент.

Полагаю, я должен дать больше концепции, я строю калькулятор и стараюсь не показывать несколько операторов.

fiddle

'use strict';

const input = document.querySelector('#input'), // input/output button
  numbers = document.querySelectorAll('.numbers div'), // number buttons
  operators = document.querySelectorAll('.operators div'), // operator buttons
  result = document.querySelector('#result'), // equal button
  clear = document.querySelector('#clear'); // clear button


let numberInput = []
let operatorsInput = []

document.querySelectorAll('.numbers div').forEach(buttonPress => {
  buttonPress.addEventListener('click', (event) => {
    numberInput.push(parseInt(event.target.textContent));
    console.log(numberInput)
  });
});

document.querySelectorAll('.operators div').forEach(buttonPress => {
  buttonPress.addEventListener('click', (event) => {
    operatorsInput.push(event.target.textContent);
    // operatorsInput.from(noDuplicates);
  let noDuplicates = [...new Set(operatorsInput)];
  let operatorsND = Array.from(noDuplicates)
  console.log(operatorsND);
  operatorsInput.push(operatorsND)
  });
});

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

Если я правильно понял, решение так просто (я пропустил некоторые части вашего примера кода):

// ... elided ...

let numberInput = []
let operatorsInput = new Set(); // <-- make a Set by default

document.querySelectorAll('.numbers div').forEach(buttonPress => {
  // ... elided ...
});

document.querySelectorAll('.operators div').forEach(buttonPress => {
  buttonPress.addEventListener('click', (event) => {
    operatorsInput.add(event.target.textContent); // <-- "push" to the Set
    
    console.log(...operatorsInput.values()) // <-- read & display values in the Set
  });
});

Это гарантирует, что каждый оператор имеет только один раз внутри operatorsInput.

0 голосов
/ 07 февраля 2020

Да, вы можете pu sh.

Эта строка кода выделяет память и помещает все элементы из набора во вновь созданный массив.

let noDuplicates = [...new Set(operatorsInput)];

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