首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >访问不使用变量的对象

访问不使用变量的对象
EN

Stack Overflow用户
提问于 2019-03-20 03:28:02
回答 2查看 83关注 0票数 0

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

代码语言:javascript
运行
复制
 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"
 };
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-20 03:35:55

在您的代码中,您正在将一个变量设置为string not gender

代码语言:javascript
运行
复制
if(document.getElementById("male").checked){
    gender = "mensList";
} else if (document.getElementById("female").checked){
    gender = "womensList";
}

应该是

代码语言:javascript
运行
复制
if(document.getElementById("male").checked){
    gender = mensList;
} else if (document.getElementById("female").checked){
    gender = womensList;
}
票数 1
EN

Stack Overflow用户

发布于 2019-03-20 03:35:21

这就是你的问题:

代码语言:javascript
运行
复制
if(document.getElementById("male").checked){
    gender = "mensList";                         //gender now contains a string only..
} else if 

因为性别只包含一个字符串,所以这将不起作用:

代码语言:javascript
运行
复制
var theValue = gender[bw];     // This doesn't work

相反,你应该做的是:

代码语言:javascript
运行
复制
if(document.getElementById("male").checked){
    gender = mensList;                         //now gender contains an array provided mensList is defined beforehand ..
} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55248668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档