You need to enable JavaScript to run this app. 调用filter方法过滤对象内部数组时执行无效果问题求助
优惠活动
大模型
产品
解决方案
定价
更多

调用filter方法过滤对象内部数组时执行无效果问题求助

问题原因
  • JavaScript 中的filter方法不会修改原数组,仅会返回一个包含所有符合过滤条件元素的新数组。你的代码中仅执行了过滤操作,但没有将返回的新数组赋值给变量,所以原有following变量的值始终没有变化。
  • 即使直接对this.user?.following调用filter,同样因为没有接收返回值,原数组也不会被修改。
修复后的代码
unfollow(handle: any) {
  // 接收filter返回的新数组
  let following = (this.user?.following || []).filter((userHandle) => userHandle !== handle);
  // 如果需要同步更新this.user上的following属性,可添加下方代码
  if (this.user) {
    this.user.following = following;
  }
  console.log(following);
}
补充说明
  • 如果你需要直接修改原数组,可以改用splice方法实现过滤,但更推荐使用filter生成新数组的写法,符合不可变数据的最佳实践,能避免很多意料之外的副作用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 17:45:03