我应该如何做到这一点,我什至可以推送或者是否有其他方法可以用来将集合添加到我的全局数组中?
如果您确实需要 HTML 和 CSS,我现在只提供我的 javascript,我可以提供,但我认为不需要。
就像该集合也做了它应该做的事情一样,但我不确定它是否被保存到一个实际的数组中,我稍后可以调用该数组。
我认为最后的插入是没有必要的,或者说它目前正在做任何事情。
我想我应该给出更多概念,我正在构建一个计算器并试图避免显示多个运算符。
'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/