javascript - 使用 Value from Option 从 JSON 中获取数据
问题描述
朋友们!我有一个 json 文件、一个 .js 文件和一些 html。
我可以从js文件中的json文件中读取数据就好了,它正在输出到控制台。
所以我有一个包含所有 50 个州的下拉菜单,这些值是州的缩写。每个状态有 6 个不同的值,如下所示:
"AK": {
"I": 0,
"II": 0,
"III": 0,
"IV": 0,
"V": 0,
"VI": 0
}
我可以这样控制数据:data.AK.II,这很好。
我在实现这一点时遇到了问题:数据。(所选选项的值)。II
$('select#input_56_3').on('change', function () {
var thisValue = $('select#input_56_3 option:selected').val();
var newValue = data.thisValue.I;
console.log('newValue = ' + newValue);
});
这是我得到的错误,所以'thisValue'遇到未定义。
未捕获的类型错误:无法读取未定义的属性“I”
我应该以某种方式转换它吗?我想我已经盯着这个太久了。
解决方案
更改data.thisValue.II
为data[thisValue].II
,它将起作用。
- 当键名中有空格时,基本上使用括号表示法,例如
"full name"
等。- 如果您直接尝试访问对象中的值,则使用 Do 表示法。如果
d = {k: 1}
那时d.k
和d[k]
两者都很好。d = {"k v": 1}
那么只会d["k v"]
工作。
> data = {
... "AK": {
..... "I": 0,
..... "II": 0,
..... "III": 0,
..... "IV": 0,
..... "V": 0,
..... "VI": 0
..... }
... }
{ AK: { I: 0, II: 0, III: 0, IV: 0, V: 0, VI: 0 } }
>
> thisValue = "AK"
'AK'
>
> data[thisValue].I
0
> data[thisValue].II
0
>
以下将抛出异常(错误)。
> data.thisValue.II
Thrown:
TypeError: Cannot read property 'II' of undefined
>
推荐阅读
- python - 带引号的xpath问题“(python + selenium)
- c - Elgamal BN_exp() 操作卡住
- keycloak - 无法使用 Keycloak REST API 创建角色
- spring-cloud-dataflow - 如何在 Spring Cloud Dataflow 中的任务之间传递数据
- python - 如何为特定矩阵编写代码?
- ios - 使用样式 overCurrentContext 呈现 UIViewController 时的可访问性问题
- go - 当服务器尝试发送 Expo 通知时,得到“x.509 证书由未知机构签名”
- ag-grid - 用于可扩展行或全宽单元格渲染器的 ag-grid 组单元格渲染器,
- python - Python使两个字符串相互关联
- c++ - 符号会丢失:将低位清零