javascript - 访问不使用变量的对象

标签 javascript html variables

这看起来很简单,但我却碰壁了。我的代码获取权重,访问对象数组以获取值,然后使用该值 * 权重计算结果。但是访问对象不适用于变量。

 function calc(){
var gender;
if(document.getElementById("male").checked){
    gender = "mensList";
} else if (document.getElementById("female").checked){
    gender = "womensList";
} else {
    alert("Please select a gender");
    return false;
}
var kg = parseInt(document.getElementById("bwKg").value);
var grams = parseFloat(document.getElementById("bwGrams").value);
var bw = parseFloat(kg + grams);
var lifted = parseFloat(document.getElementById("liftWeight").value);

var theValue = womensList[bw]; // This works
var theValue = mensList[bw];   // This also works
var theValue = gender[bw];     // This doesn't work
var theValue = gender + "[\"" + bw + "\"]" // Nor this

var result = theValue * lifted;
document.getElementById("result").textContent = result;
 }

 var womensList = {
  40.0: "1.4936",
  40.1: "1.4915",
  40.2: "1.4894",
  40.3: "1.4872",
  40.4: "1.4851",
  // ......... etc
  150.7: "0.7691",
  150.8: "0.7691",
 150.9: "0.7691"
};

var mensList = {
  40.0: "1.3354",
  40.1: "1.3311",
  40.2: "1.3268",
  40.3: "1.3225",
  40.9: "1.2975",
  // ......... etc
  205.7: "0.5318",
  205.8: "0.5318",
  205.9: "0.5318"
 };

最佳答案

在您的代码中,您将性别设置为字符串而不是变量。

if(document.getElementById("male").checked){
    gender = "mensList";
} else if (document.getElementById("female").checked){
    gender = "womensList";
}

应该是

if(document.getElementById("male").checked){
    gender = mensList;
} else if (document.getElementById("female").checked){
    gender = womensList;
}

关于javascript - 访问不使用变量的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55248668/

相关文章:

根据服务器可用性将 HTML 重定向到不同的 URL

javascript - 如何在 php 中使用用 javascript 语言声明的 for 循环变量

javascript - Mootools 确认对话框如果取消,将停止 ajax 功能。

javascript - MongoDB JavaScript 查询;过滤列数组中的值

javascript - 文档准备好后,将数据从一个文本框复制到另一个文本框

javascript - JQuery - 表单提交 - 多次?

html - 如何根据父元素高度CSS子元素高度?

javascript - <button formtarget ="_blank"></button> 不起作用

php - 如何在 PHP 中将两个字符串组合在一起?

c++ - 公共(public)变量