我想检查某个用户名是否在用户对象数组中。
我正在使用fastapi获取投票者列表。一个用户的用户名值为{"username": "mickey"}
。我正在使用persistent_storage将当前用户存储为$username
。
<script>
let question = {answers:[], voter:[], content: ''}
function get_question() {
fastapi("get", "/api/question/detail/" + question_id, {}, (json) => {
question = json
})}
</script>
{#if question.voter.forEach(v => v.username).includes($username) }
然而,question.voter.username.forEach(v => v.username)
总是返回undefined,我有点搞不清python和javascript的本质。
还是我的方法错了?我应该创建另一个快速API调用吗?
1条答案
按热度按时间cld4siwp1#
假设
$username
保存一个字符串值,则检查可能是也可能是
但我认为
.some()
除了更短之外,还更高效,因为它只迭代数组一次,并且在找到结果后立即停止请注意,注解中提到的当前解决方案使用String.prototype.includes
容易出错,因为这将匹配包含当前用户名的较长用户名。例如,当存在用户对象
{username: 'foobar'}
和$username = 'foo'
时,这将在没有{username: foo}
时匹配。可以调整为但相比之下这不是首选