javascript - 如何获取 javascript 对象集合的值?
问题描述
当显示消息时,我从对象集合中获得了一个未定义的值。
我应该得到价值并显示它。
有谁知道问题出在哪里,或者我可能遗漏了什么?
链接完整代码 - https://jsfiddle.net/lmanhaes/cq1g5dyt/1/
谢谢。
const ratesValue = [{
"key": "Pound Sterling",
"value": 1.30,
},
{
"key": "Euro",
"value": 1.30,
},
{
"key": "Yen",
"value": 142.72,
},
{
"key": "Yuan",
"value": 8.95,
},
{
"key": "Swiss Franc",
"value": 1.26,
},
{
"key": "Canadian Dollar",
"value": 1.69,
},
];
function getCurrency() {
let cur_type = document.getElementById('currencies').value.trim()
// trim() method to remove whitespaces and present clean and optimal string
let msg = cur_type ? "One US Dollar buys you " + ratesValue[cur_type] + " " + cur_type : ""
document.getElementById("exchangerate").innerHTML = msg
}
// event handler -- put in place to be used when value selected from dropdown list.
window.onload = function () {
getCurrency();
};
<h1>Currency Exchange Rates to US Dollar</h1>
<!--value of an element has been changed.-->
<select id="currencies" onchange="getCurrency()">
<option value="">Select a currency</option>
<option>Pound Sterling</option>
<option>Euro</option>
<option>Yen</option>
<option>Yuan</option>
<option>Swiss Franc</option>
<option>Canadian Dollar</option>
</select>
<p id="exchangerate"></p>
解决方案
ratesValue
是对象数组,所以你必须filter
通过数组来获取你需要的对象 key 。
所以像这样改变这个功能
const value = ratesValue.find(item=>item.key === cur_type).value;
let msg = cur_type ? "One US Dollar buys you " + value + " " + cur_type : ""
推荐阅读
- r - 打印列中每个元素的百分比
- python - Django admin - 使用另一个模型的 ModelForm 添加额外的字段
- python - XGBoost - 每个阈值的准确度、精确度和召回率 + 每个时期的损失
- c++ - 使用 MSXML C++ 将另一个 XML 文件添加到现有 XML 文件
- django - 如何在 Django 中设置的 Ember.js 中获取 cookie(基本上我需要 jwt 令牌)?
- reactjs - 我如何使我的仪表板受保护组件(只有注册用户才能访问)。以及仪表板导航的工作原理
- parallel-processing - 使用 Ray 在 Ubuntu 上进行并行化
- c - Verifiable-C 支持 C 的哪个子集?
- postgresql - 在 Postgres 的所有表和所有列中搜索字符串
- networking - 负载均衡器如何检查后端服务器的负载以进行智能请求路由?