长风秋雁
首先,注意区分 JavaScript 对象字面量和 JSON。JSON 是种数据格式,要求比 JavaScript 对象字面量要严格得多。另外,你问题中的 b 是一个数组,内容是各变量的值,根本取不到变量名称,所以后面的一切都没有基础可以做到。除非你的 b 中是变量名称,而不是值,那就像下面的代码那样就行代码使用了 ES6 的 Lambda 表达式语法// 这样是做不到,C# 有 nameof 运算符,但是 JavaScript 没有var b = [a1, a2, a3, a4, a5];
// 但是如下下面这样就可以var c = ["a1", "a2", "a3", "a4", "a5"];
a = (function(global) { var r = {};
c.forEach(key => {
r[key] = global[key].val();
}); return r;
})(typeof window === "undefined" ? global : window);