javascript - 使用变量名在 JavaScript 中返回值
问题描述
我在我的 JavaScript 中创建了一个函数,这里是场景: 请注意,下面的代码仅适用于我的场景,它不起作用。
getData('bill', 'userAge');
Function getData(u, variable) {
fetch(`url`).then(r=> { return response.json();})
.then(u => {
var userFullName = u.fullname;
var userAge = u.age;
var userGender = u.gender
return variable
});
}
当我执行函数时getData('bill', 'userAge')
,它userAge
是函数内部的变量名。并且该函数将从变量名称中返回值:userAge
在函数内部,因此我不必编写其他代码,例如if(variable=='userAge') return userAge
;
可能吗 ?只是问一下,因为我的函数中有很多变量,现在我还在使用if(variable=='userAge') return userAge
解决方案
好吧,直接回答你的问题:不,如果你想完全返回variable
你现在传递的,你需要将每个变量名映射到每个返回属性。
但是,如果您直接且准确地将属性名称作为variable
参数传递,那么您可以只使用return u[variable]
. 例如userFullName
,您不通过,而是通过fullname
。
我不打算说明您当前的示例代码完全错误的优点,Function ...
因为您应该使用它将无法工作function ...
,但在下面我使用不同的方法制作了一个功能示例fetch
using await
and async
,您可以看到它正在返回我指定的属性,即"title"
.
async function getData(variable) {
const response = await fetch('https://jsonplaceholder.typicode.com/todos/1', {});
const u = await response.json();
return u[variable];
}
getData('title').then(a => {console.log(a)});
要检查我的示例是否从对象返回了预期的属性,您可以访问链接:JSON 示例
推荐阅读
- java - 对于不仅包含日期属性的对象的整个列表,如何将 LocalDateTime yyyy-MM-dd HH:mm 格式化为 dd-MM-yyyy HH:mm 作为字符串?
- python - 如何将使用 open() 加载的数据编码为 UTF-8?
- python - 如何用张量 np.concatenate 列表?
- powershell - 根据文件名移动文件
- r - 如何在环境中运行任意表达式,将所有结果存储在环境中?
- c# - 具有堆栈的项目的 Azure devops 管道任务:selenium、c#、Nunit、边缘浏览器
- python-3.x - 终端中的 Buildozer 服务垃圾邮件
- random - random.seed 在使用 Spyder 的 Python 3.9.7 中不起作用
- android - Picutre 未出现在警报对话框中
- javascript - 从 HTML 字符串中删除标签和