首先,注意区分 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);
首先,注意区分 JavaScript 对象字面量和 JSON。JSON 是种数据格式,要求比 JavaScript 对象字面量要严格得多。
另外,你问题中的
b
是一个数组,内容是各变量的值,根本取不到变量名称,所以后面的一切都没有基础可以做到。除非你的b
中是变量名称,而不是值,那就像下面的代码那样就行