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

如何用find()遍历对象数组,按输入数值区间匹配对应里程对象

解决方案

我来帮你完善这个里程匹配函数!根据你的需求,我们可以通过区间判断对应到state['1'].extras.mileage数组里的目标对象,同时注意处理JavaScript/TypeScript中数字键名的访问规范。

完整实现代码

export const getMileageName = (state: GlobalState, inputMileage: number) => {
  // 注意:对象键名为纯数字时,不能用点语法state.1,必须用括号访问state['1']
  const mileageOptions = state['1'].extras.mileage;

  // 按区间匹配对应的里程对象
  if (inputMileage <= 1000) {
    // 匹配1-1000区间(包含1000)
    return mileageOptions[0];
  } else if (inputMileage <= 2000) {
    // 匹配1001-2000区间(包含2000)
    return mileageOptions[1];
  } else if (inputMileage <= 3000) {
    // 匹配2001-3000区间(包含3000)
    return mileageOptions[2];
  }

  // 处理超出1-3000范围的输入,可根据业务调整返回值
  return {
    name: 'Unknown mileage',
    mileage: '0',
    description: 'No matching mileage range'
  };
};

关键细节说明

  • 数字键名访问:因为state里的属性是1(纯数字),所以必须用state['1']来访问,不能用state.1——这是JS/TS的语法规则,点语法只支持合法标识符(不能以数字开头)。
  • 区间边界调整:如果你的需求里1000属于第二个区间、2000属于第三个区间,只需要把判断条件改成:
    if (inputMileage < 1000) { ... }
    else if (inputMileage < 2000) { ... }
    else if (inputMileage <= 3000) { ... }
    
  • 动态生成对象(可选):如果mileageOptions数组里的对象只存了里程数值,需要你动态拼接name和description,可以改成这样:
    export const getMileageName = (state: GlobalState, inputMileage: number) => {
      const mileageOptions = state['1'].extras.mileage;
    
      if (inputMileage <= 1000) {
        const mileage = mileageOptions[0].mileage;
        return {
          name: `${mileage} mileage`,
          mileage,
          description: 'mileage-description'
        };
      } else if (inputMileage <= 2000) {
        const mileage = mileageOptions[1].mileage;
        return {
          name: `${mileage} mileage`,
          mileage,
          description: 'mileage-description'
        };
      } else if (inputMileage <= 3000) {
        const mileage = mileageOptions[2].mileage;
        return {
          name: `${mileage} mileage`,
          mileage,
          description: 'mileage-description'
        };
      }
    
      return {
        name: 'Unknown mileage',
        mileage: '0',
        description: 'No matching mileage range'
      };
    };
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:04:59