我有一个从数组中删除项目的循环,但它必须使用该数组来删除与数组项目对应的其他内容(poll.results项目)。出于某种原因,当这个循环运行时,它只删除一个项目,然后停止。我真的不知道我还能做些什么来解决这个问题,因为我没有真正得到错误。同样,所有函数都完全按照预期工作,但是使用带有这些函数的循环似乎只会使循环运行第一次迭代......
poll = {
results: {
'test 1': 1,
'test 2': 1,
'test 3': 1
},
users: {
'someid': ['test 1', 'test 2', 'test 3']
},
title: 'some title',
author: 'someid'
}
function purgeUser(id) {
if (poll.users.hasOwnProperty(id)) {
for (let i = 0; i < poll.users[id].length; i++) {
removeUserVote(id, i + 1);
write('current', poll);
}
}
}
function removeUserVote(id, index) {
if (poll.users.hasOwnProperty(id)) {
// assuming the index is 1 2 3 from discord chat
if (index <= poll.users[id].length && index > 0) {
downvote(poll.users[id][index - 1]);
poll.users[id].splice(index - 1, 1);
if (!poll.users[id].length)
delete poll.users[id];
}
}
}
function downvote(name) {
if (poll.results.hasOwnProperty(name)) {
if (poll.results[name] === 1)
delete poll.results[name];
else
poll.results[name]--;
}
}