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

技术需求:将星期以名称而非数字显示并修正加纳姓名计算JS函数

修正后的加纳传统姓名计算函数(含星期名称显示)

我看了你的代码,发现几个小问题需要调整,同时帮你实现以星期名称而非数字显示的需求。这里是修正后的完整代码:

function compute(event) {
  event.preventDefault();
  const form = new FormData(event.target);
  // 获取表单输入的出生日期和性别
  const day = form.get("day");
  const month = form.get("month");
  const year = form.get("year");
  const gender = form.get("gender");

  // 加纳传统姓名与星期、性别的映射表
  const ghanaNameMap = {
    Sunday: { male: 'Kwasi', female: 'Akosua' },
    Monday: { male: 'Kwadwo', female: 'Adwoa' },
    Tuesday: { male: 'Kwabena', female: 'Abenaa' },
    Wednesday: { male: 'Kwaku', female: 'Akua' },
    Thursday: { male: 'Yaw', female: 'Yaa' },
    Friday: { male: 'Kofi', female: 'Afua' },
    Saturday: { male: 'Kwame', female: 'Ama' }
  };

  // 构造合法日期字符串并生成Date对象
  const dateStr = `${year}/${month}/${day}`;
  const birthDate = new Date(dateStr);

  // 将星期数字转换为星期名称(getDay()返回0-6,对应周日到周六)
  const dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
  const dayOfWeekName = dayNames[birthDate.getDay()];

  // 获取对应的加纳传统姓名
  const ghanaName = ghanaNameMap[dayOfWeekName][gender];

  // 输出结果(可替换为页面展示逻辑)
  console.log(`你出生在${dayOfWeekName},对应的加纳姓名是${ghanaName}`);
  // 示例:如果页面有id为result的元素,可将结果显示在页面上
  // document.getElementById('result').textContent = `出生星期:${dayOfWeekName},加纳姓名:${ghanaName}`;
}

关键调整说明:

  • 修复变量问题:原代码里重复声明了day变量,我调整了命名(比如birthDate、dayNames)避免变量覆盖,同时补全了未定义的dateString变量。
  • 实现星期名称显示:通过dayNames数组,把getDay()返回的数字(0=周日,6=周六)直接映射成对应的星期名称,既可以用来匹配姓名,也能直接展示给用户。
  • 代码可读性优化:用const替代var符合现代JS规范,给变量起了更清晰的名字(比如ghanaNameMap),让逻辑更易懂。

现在这个函数既能正确计算加纳传统姓名,也能直接获取并显示出生当天的星期名称,你可以根据需求把结果输出到控制台或者页面的指定元素中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 15:12:41