当我执行以下操作时,由于某种原因,我得到了一个空字符串。
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的方法如何吗?
答案 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);