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

React.js中如何判断additionalDataProperties是否存在Duration键

解决方案

你使用的是Immutable.js的Map结构,判断指定键是否存在可以直接调用Map原生的has()方法,无需转成普通对象,性能和可读性都更好。

场景1:在原有过滤逻辑中新增存在性判断

如果你需要先判断Duration键存在,再执行原有ID匹配逻辑,修改后代码如下:

users = this.props.Users.filter(u => {
  // 判断additionalDataProperties中是否存在Duration键
  const hasDurationKey = u.additionalDataProperties.has(USER_ADDITIONAL_PROPERTY_KEYS.Duration);
  // 仅存在键时才执行后续匹配逻辑,不存在的用户直接过滤
  return hasDurationKey && u.additionalDataProperties.get(USER_ADDITIONAL_PROPERTY_KEYS.Duration)
    .some(durationId => durationId === this.props.durationFilterId);
});

场景2:单独的if条件判断

如果仅需要做存在性判断,单独的if语句写法如下:

if (u.additionalDataProperties.has(USER_ADDITIONAL_PROPERTY_KEYS.Duration)) {
  // 存在Duration键时的业务逻辑
}

注意事项

  • 你提供的现有代码中字段名为additionalProperties,但给出的数据结构中字段名为additionalDataProperties,请注意核对字段名避免判断失效
  • 如果一定要转成普通对象后判断,可使用JS原生Object.hasOwn()方法,写法如下:
    const propsObj = u.additionalDataProperties.toObject();
    const hasDurationKey = Object.hasOwn(propsObj, USER_ADDITIONAL_PROPERTY_KEYS.Duration);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 07:06:07