函数停止循环

时间:2017-06-27 07:49:12

标签: javascript arrays for-loop

我有一个从数组中删除项目的循环,但它必须使用该数组来删除与数组项目对应的其他内容(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]--;
    }
}

0 个答案:

没有答案