You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Svelte TypeScript中检查用户名是否存在于用户对象数组

问题解决:检查用户名是否存在于投票者数组中

你的代码问题出在两个地方:

  • 错误访问了question.voter.username:voter是数组,本身没有username属性,应该直接遍历question.voter数组。
  • forEach方法没有返回值:它只是遍历数组执行回调函数,调用后会得到undefined,自然没法链式调用includes。

不需要新增FastAPI调用,前端直接处理就行,给你两种正确的实现方式:

方法一:用some方法(推荐)

some会遍历数组,只要有一个元素满足条件就返回true,完美匹配“检查存在性”的需求:

{#if question.voter.some(v => v.username === $username)}
  <!-- 这里展示用户已投票的内容 -->
{/if}

方法二:用map+includes

先通过map提取所有投票者的用户名到新数组,再用includes判断当前用户名是否在其中:

{#if question.voter.map(v => v.username).includes($username)}
  <!-- 这里展示用户已投票的内容 -->
{/if}

补充下JS和Python的差异:Python里你可能会用any(v['username'] == username for v in voter)来判断,JS里的some方法和这个逻辑完全一致;而JS的forEach更像Python里的普通for循环,只做遍历执行,不会返回结果,这就是你之前得到undefined的原因。

内容的提问来源于stack exchange,提问作者Maeror

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:05:35