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

TS中Map的get方法可用,数组TestProductIds如何实现存在判断?

解决数组判断元素存在的问题

你这里的核心问题是数组类型没有get方法:原来的purchasedProductIds是Map类型,get方法会返回对应的值(存在时返回number,不存在返回undefined,filter回调里会自动转成布尔值);而TestProductIds是string[]数组类型,得用数组专属的方法来判断元素是否存在。

直接用数组的includes()方法就能完美替代原来的逻辑,它会直接返回布尔值,刚好符合filter回调的判断要求:

CustomersPurchasedProduct(): Customer[] {
  return this.customers.toArray().filter(customer => 
    customer.TestProductIds.includes(this.selectedProduct.id)
  );
}

补充说明:

  • includes()方法采用严格匹配(和===逻辑一致),完全对应你原来Map用字符串key的判断逻辑;
  • 如果需要兼容不支持ES7的旧环境,也可以用indexOf()替代:customer.TestProductIds.indexOf(this.selectedProduct.id) !== -1,不过includes()语义更直观,推荐优先使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:54:42