javascript - 我可以从集合中插入数组吗?

标签 javascript arrays set

我应该如何做到这一点,我什至可以推送或者是否有其他方法可以用来将集合添加到我的全局数组中?

如果您确实需要 HTML 和 CSS,我现在只提供我的 javascript,我可以提供,但我认为不需要。

就像该集合也做了它应该做的事情一样,但我不确定它是否被保存到一个实际的数组中,我稍后可以调用该数组。

我认为最后的插入是没有必要的,或者说它目前正在做任何事情。

我想我应该给出更多概念,我正在构建一个计算器并试图避免显示多个运算符。

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)
  });
});

最佳答案

如果我理解正确,解决方案就这么简单(我跳过了示例代码的某些部分):

// ... 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 中仅一次

关于javascript - 我可以从集合中插入数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60115568/

相关文章:

javascript - React Form onSubmit 方法未触发

ruby-on-rails - 如何使用 Ruby 2.5.3 从数组中删除字符串?

assembly - MIPS中如何将负数变为正数?

javascript - 使用 attr() 获取背景图片 url

javascript - ember.js 从另一个 View 更改 View

python - 对部分 "sparse"numpy 数组的高效数学运算

javascript - Ngxs - 将 Sets 这样的对象添加到存储中可以吗?

当对象是集合成员时,C++ std::set 比较函数

javascript - 是否可以保留自定义元素的内部 html?

c++ - 初始化字符串的静态数组(C++)?