Кажется, я столкнулся с проблемой при циклическом просмотре массива. Кажется, что l oop выполняется только один раз, независимо от размера массива. Я пытался использовать разные методы зацикливания, но ошибка все еще сохраняется.
В качестве справочной информации я пытаюсь создать бота, с помощью которого пользователи могут начислять друг другу очки. Все остальное казалось в порядке. Единственная проблема заключается в том, что я sh задаю максимальное количество баллов, которое один пользователь может дать другому в день, и у меня возникают проблемы с циклом в массиве, в котором хранится эта информация.
Эти соответствующие части моего кода:
var timer = []; //Timer stores the values.
const getTimerSenderIdTable = (id) => {
let found = false;
timer.forEach(function(dat) { // This is the problematic loop.
if (dat.id === id) {
found = dat;
}
})
console.log("loop end, results: " + found);
return found;
};
const timerManager = (senderId, targetId, pointSurp) => { //All arguments are integers.
let d = new Date()
if (getTimerSenderIdTable("date") !== d.getDate()) {
timer = [];
timer.push({"id":"date", "time":d.getDate()});
if (getTimerSenderIdTable("date")) {
if (getTimerSenderIdTable(senderId)) {
console.log("path 1");
} else {
console.log("path 2");
timer.push({"id":senderId, [targetId]:pointSurp});
}
}
} else {
if (getTimerSenderIdTable("date")) {
if (getTimerSenderIdTable(senderId)) {
console.log("path 3");
} else {
console.log("path 4");
timer.push({"id":senderId, [targetId]:pointSurp});
}
}
}
console.log(timer)
};
* Редактировать: Спасибо за ваши комментарии. Вот пример:
Вызов timerManager(123456, 654321, 3)
даст следующий вывод:
loop end, results: false
loop end, results: [object Object]
loop end, results: false
path 2
[ { id: 'date', time: 28 }, { '654321': 3, id: 123456 } ]
(Это репост из комментариев. Мои извинения.)