我正在寻找一种很好的函数式方法来转换这个对象:
var globals = {
foo: "bar",
foo2: "bar2"
};...into此字符串:
'window.foo = "bar"; window.foo2 = "bar2";'类似于Array.prototype.reduce()的东西。使用Lodash这样的语言是可以的。
我要的是non-functional方法,而不是,而不是:
var string = "";
// Pseudo code
_.forOwn(...) {
string += key
}发布于 2015-10-06 13:04:15
使用映射和连接
var globals = {
foo: "bar",
foo2: "bar2"
};
var result = Object.keys(globals).map(function(key) {
return 'window.' + key + ' = "' + this[key] + '";';
}, globals).join(' ');
console.log(result);
发布于 2015-10-06 13:07:33
您可以尝试将对象转换为JSON对象,然后可以轻松地将JSON对象转换为String .using JSON.Stringify()
发布于 2015-10-06 13:10:02
Ammar's answer以一种适当的函数样式执行任务,但是如果您只想将对象的数据保存为全局作用域中的变量,那么使用for循环而不是对生成的字符串进行分级(如果您需要发送或存储字符串,这就是JSON.stringify的目的),难道不是更容易吗?就像这样:
var globalScope = (window || this);
for (var key in globals) {
globalScope[key] = globals[key];
}https://stackoverflow.com/questions/32970653
复制相似问题