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

如何将表单值传入二维关联数组?getSalary函数故障求助

解决二维关联数组与getSalary函数的问题

看起来你在处理二维关联数组和薪资计算函数时卡壳了,我来帮你捋一捋~

核心问题分析

你当前定义的salaries是嵌套数组结构,但数组是索引驱动的,而你需要的是键值对关联的逻辑——这也是getSalary()无法正常工作的关键:你没法直接通过职位名称(比如"intern")快速定位到对应的薪资,必须依赖索引取值,不仅容易出错,代码可读性也差。

修改方案:改用对象嵌套的关联结构

在JavaScript中,用对象嵌套来实现“二维关联数组”是最直观且高效的方式,我帮你调整了salaries的结构:

// 键为岗位类型(如mrWh/mrbchWht),值为职位-薪资的键值对
const salaries = {
  "mrWh": {
    "intern": 2511,
    "contractual": 2592,
    "designated": 2932,
    "certificated": 3411
  },
  "mrbchWht": {
    "intern": 2121,
    "contractual": 2200,
    "designated": 2500 // 补全你未写完的数值
    // 可继续添加其他职位的薪资
  }
};

表单值传递与getSalary()实现

假设你的表单包含两个核心输入项:选择岗位类型的控件(如name="jobType")、选择职位级别的控件(如name="position"),可以这样获取表单值并调用getSalary():

1. 获取表单值的函数

function getFormValues() {
  // 从表单中提取两个关键参数
  const jobType = document.querySelector('[name="jobType"]').value;
  const position = document.querySelector('[name="position"]').value;
  
  // 调用薪资计算函数并输出结果
  const result = getSalary(jobType, position);
  alert(`对应薪资:${result}`);
}

2. 修正后的getSalary()函数

function getSalary(jobType, position) {
  // 先校验参数是否有效,避免报错
  if (salaries[jobType] && salaries[jobType][position]) {
    return salaries[jobType][position];
  } else {
    // 处理无效输入的情况
    return "无效的岗位类型或职位级别";
  }
}

补充说明

如果你坚持要使用数组结构实现关联逻辑,也可以将子数组改为Map类型,但对象的写法在日常开发中是最常用、最易维护的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:54:03