首页 > 解决方案 > 使用变量名在 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

标签: javascript

解决方案


好吧,直接回答你的问题:不,如果你想完全返回variable你现在传递的,你需要将每个变量名映射到每个返回属性。

但是,如果您直接且准确地将属性名称作为variable参数传递,那么您可以只使用return u[variable]. 例如userFullName,您不通过,而是通过fullname

我不打算说明您当前的示例代码完全错误的优点,Function ...因为您应该使用它将无法工作function ...,但在下面我使用不同的方法制作了一个功能示例fetchusing awaitand 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 示例


推荐阅读