我试图在javascript中构建一个多维数组,到目前为止还没有成功。我在这里读了一些关于Stackoverflow的其他帖子,并阅读/观看了关于这个主题的教程,所有这些都对我有帮助,但是我不能让它工作。
大多数时候我得到以下错误:
Uncaught SyntaxError: Unexpected token
基本上,我有一个表格,我的网站的访问者可以输入他们的年龄,血压,胆固醇,如果他们是吸烟或不吸烟。
riscTable = {
'68': { // AGE
'170': { // BLOODPRESSURE
// M, MS, W, WS
'275': { 27, 48, 16, 30 }, // CHOLESTEROL
'225': { 22, 41, 13, 24 }, // CHOLESTEROL
'175': { 18, 34, 10, 20 }, // CHOLESTEROL
'0': { 15, 28, 8, 16 } // ...
},
'150': {
'275': { 20, 36, 11, 22 },
'225': { 16, 30, 9, 18 },
'175': { 13, 25, 7, 14 },
'0': { 10, 20, 6, 12 }
},
'130': {
'275': { 14, 27, 8, 15 },
'225': { 11, 22, 6, 13 },
'175': { 9, 18, 5, 10 },
'0': { 7, 15, 4, 8 }
},
'0': {
'275': { 10, 19, 5, 11 },
'225': { 8, 16, 4, 9 },
'175': { 6, 13, 3, 7 },
'0': { 5, 10, 3, 6 }
}
},
'63': ... // AGE
}
我已经添加了注释标签,使我的数组结构更容易理解。
我想做的是用数学逻辑运行键值(将最高值始终放在顶部)以确定结果。
上面代码的示例:
一个不吸烟的女性,65岁(高于63,因此她属于68数组),血压150,胆固醇175应该返回值:7
我做错了什么来获得"Uncaught SyntaxError: Unexpected token"错误,以及我如何让我的脚本在数组上运行以返回正确的结果,如上面的示例所示?
谢谢你看我的问题,我希望有人能帮助我。
代码中包含实际值的部分试图使用对象表示法。
'170': { // BLOODPRESSURE
// M, MS, W, WS
'275': { 27, 48, 16, 30 }, // Should be an array
'225': { 22, 41, 13, 24 }, // Should be an array
'175': { 18, 34, 10, 20 }, // Should be an array
'0': { 15, 28, 8, 16 } // ...
},
将这些转换成数组。
var riscTable = {
'68': { // AGE
'170': { // BLOODPRESSURE
// M, MS, W, WS
'275': [ 27, 48, 16, 30 ], // Is an array
'225': [ 22, 41, 13, 24 ], // Is an array
'175': [ 18, 34, 10, 20 ], // Is an array
'0': [ 15, 28, 8, 16 ] // ...
},//Rest of object
}};
你可以这样访问这些值:
alert(riscTable['68']['170']['275'][0]); //68 Year old male with bp of 170 and cholesterol of 275
注意,这不是一个多维数组。它是一个具有其他对象赋予的属性的对象。只有最后一个属性,275
, 225
, 175
, 0
包含实际数组。
我不愿意将这个复杂的对象转换为数组,因为它需要管理每个数组和随后的嵌套数组的索引。请记住,多维数组只不过是嵌套在数组中的数组。如果采用这种方法,则需要知道第一个索引对应于年龄范围68,以及与其他年龄范围以及嵌套属性(如胆固醇和血压)相关联的索引。