将对象减少为字符串的功能方法

时间:2015-10-06 13:00:05

标签: javascript

我正在寻找一种很好的功能性方式来转换此对象:

var globals = {
    foo: "bar",
    foo2: "bar2"
};

...进入这个字符串:

'window.foo = "bar"; window.foo2 = "bar2";'

Array.prototype.reduce()几乎相似的东西。 使用像Lodash这样的lib是可以的。

所寻找的是非功能性方法,如:

var string = "";

// Pseudo code
_.forOwn(...) {
    string += key
}

3 个答案:

答案 0 :(得分:2)

使用地图和加入



var globals = {
  foo: "bar",
  foo2: "bar2"
};

var result = Object.keys(globals).map(function(key) {
  return 'window.' + key + ' = "' + this[key] + '";';
}, globals).join(' ');

console.log(result);




答案 1 :(得分:0)

您可以尝试将对象转换为JSON对象,然后您可以轻松地将JSON对象转换为String。使用JSON.Stringify()

答案 2 :(得分:0)

Ammar's answer以适当的功能风格完成工作,但如果您只想将对象的数据保存为全局范围内的变量,那么使用for的方式就更容易了循环,而不是评估生成的字符串(如果您需要发送或存储字符串,那么JSON.stringify的用途是什么)?像这样:

var globalScope = (window || this);
for (var key in globals) {
    globalScope[key] = globals[key];
}