如何比较自动生成的对象数组以避免在其中重复?
How to compare an array of object generate automatically to avoid double in it?
我正在做一个艺术项目。当按下一个键时,我会在其中显示图像。就像您按 "a" 它会显示抽象图像 "a"。问题是我想在显示这些图像后对其进行操作,因此我尝试将它们存储到 array
中,但由于 p5.js 的 draw()
函数,它变得更大并且大。
我尝试在创建对象时比较它们,但它不起作用所以我正在寻找一种方法来比较对象是否存在。
我的代码是这样的:
draw() {
if (letterToDisp != 0 && ){
new Objet(temp, letterToDisp);//temp is a number random {0,1}
}
}
function Objet(rand, lettre) {
if (CheckIfExistObject(rand, lettre)) {
img[nbLetter++] = new Img(rand, lettre);
}
else {
new Img(rand, lettre);
}
}
function CheckIfExistObject(alea, lettre) {
var objectsAreSame = true;
img.forEach(function (test) {
if (test == new Img(alea, lettre)) {
objectsAreSame = false;
return objectsAreSame;
}
});
return objectsAreSame;
}
所以这为我生成了无限数组 object
所以我没有注意到如何比较它们以及如何比较它们。我需要帮助的地方是如何构建我的 CheckIfExistObject
函数。
Javascript
const pressedKeys = {};
function createImage(character) {
const image = character;
// ... you should actually build your image here
pressedKeys[character] = image;
return image;
}
document.addEventListener('keypress', (event) => {
const character = event.key.toLowerCase();
const alreadyPressed = pressedKeys[character];
return alreadyPressed || createImage(character);
});
我想这就是您要找的。在 pressedKeys
对象中,您可以跟踪已按下的键。在每次按键时,您检查当前键是否已被按下,如果是 return 您想要存储的任何内容。如果还没有按下,创建一个新图像,存储它并return它以便使用。
希望对您有所帮助!
我正在做一个艺术项目。当按下一个键时,我会在其中显示图像。就像您按 "a" 它会显示抽象图像 "a"。问题是我想在显示这些图像后对其进行操作,因此我尝试将它们存储到 array
中,但由于 p5.js 的 draw()
函数,它变得更大并且大。
我尝试在创建对象时比较它们,但它不起作用所以我正在寻找一种方法来比较对象是否存在。
我的代码是这样的:
draw() {
if (letterToDisp != 0 && ){
new Objet(temp, letterToDisp);//temp is a number random {0,1}
}
}
function Objet(rand, lettre) {
if (CheckIfExistObject(rand, lettre)) {
img[nbLetter++] = new Img(rand, lettre);
}
else {
new Img(rand, lettre);
}
}
function CheckIfExistObject(alea, lettre) {
var objectsAreSame = true;
img.forEach(function (test) {
if (test == new Img(alea, lettre)) {
objectsAreSame = false;
return objectsAreSame;
}
});
return objectsAreSame;
}
所以这为我生成了无限数组 object
所以我没有注意到如何比较它们以及如何比较它们。我需要帮助的地方是如何构建我的 CheckIfExistObject
函数。
Javascript
const pressedKeys = {};
function createImage(character) {
const image = character;
// ... you should actually build your image here
pressedKeys[character] = image;
return image;
}
document.addEventListener('keypress', (event) => {
const character = event.key.toLowerCase();
const alreadyPressed = pressedKeys[character];
return alreadyPressed || createImage(character);
});
我想这就是您要找的。在 pressedKeys
对象中,您可以跟踪已按下的键。在每次按键时,您检查当前键是否已被按下,如果是 return 您想要存储的任何内容。如果还没有按下,创建一个新图像,存储它并return它以便使用。
希望对您有所帮助!