如何在循环中将字符串追加到字符串?

时间:2020-10-27 12:31:47

标签: javascript node.js ecmascript-6

当我执行以下操作时,由于某种原因,我得到了一个空字符串。

var jsObj2 = {
  "key1": "value3",
  "key4": "value4"
};

var c = '';
for (var key in jsObj2) {
  c.concat(key + ': ' + jsObj2[key]);
}

console.log(c);

我希望在哪里

key1: value3
key4: value4

问题

任何人都可以解释为什么我的尝试无效,以及NodeJS的方法如何吗?

4 个答案:

答案 0 :(得分:6)

字符串c未被修改,但返回了新的字符串。

使用c = c.concat(key + ': ' + jsObj2[key]);

答案 1 :(得分:1)

您必须为变量分配隐含值。

if

答案 2 :(得分:1)

首选使用+=运算符

var jsObj2 = { key1: "value3"
             , key4: "value4"
             }
  , c      = ''
  , comma  = ''
  ;
for (var key in jsObj2)
  {
  c    += comma + key + ': ' + jsObj2[key]
  comma = ', '
  }
console.log(c)

或:

var jsObj2 = { key1: "value3"
             , key4: "value4"
             }
  , c = Object.entries(jsObj2)
              .map(([k,v])=>`${k}: ${v}`)
              .join(', ')
  ;
console.log(c)

答案 3 :(得分:1)

另一种方法:

const jsObj2 = {"key1": "value3", "key4": "value4"};
let str = Object.entries(jsObj2).join('').replace(/,/g, ': ');
console.log(str);