如何将数据从Javascript对象转换为字符串

时间:2018-01-31 19:25:45

标签: javascript

我的数据如下:

var data = {status: "OK", address11: 0.2, address12: 0.3}

我想要这个字符串:

  

转移成功!您转移了:0.2到地址11,0.3到地址12

我该如何有效地做到这一点?

我有这个:

var a = 'Transfer Successful! You transferred:'
for (const key of Object.keys(data)) {a.concat(`${data[key]} to ${key}`)}

但它只附加了最后一个键/值对。

4 个答案:

答案 0 :(得分:1)

只需使用+=运算符即可将字符串附加到另一个运算符。

此外,您必须从对象中删除第一个键。为此,您可以使用适用于slice数组的key's方法。

keys = Object.keys(data).slice(1);

使用+=提高效果,因为它比concat快。

MDN 有以下关于string.concat()的说法:

  

强烈建议使用字符串连接运算符   (+,+ =)而不是出于性能原因的方法



var data = {status: "OK", address11: 0.2, address12: 0.3}
var a = 'Transfer Successful! You transferred:';
keys = Object.keys(data).slice(1);
for (const key of keys) {a +=` ${data[key]} to ${key}`}
console.log(a);




答案 1 :(得分:1)

您需要将此a.concat('${data[key]} to ${key}'存储到变量a

a = a.concat(`${data[key]} to ${key}` 

并避开密钥status

var data = {
  status: "OK",
  address11: 0.2,
  address12: 0.3
}

var a = 'Transfer Successful! You transferred: ';
for (const key of Object.keys(data)) {
  if (key === 'status') continue
  a = a.concat(`${data[key]} to ${key} `)
}

console.log(a)

答案 2 :(得分:1)

我会以不同的方式设置您的数据对象,因此您不必依赖于属性名称,以便知道它的状态是什么"或一些转移地址。将传输存储在一个数组中也可以保证它们的顺序,这可能是也可能不重要。



MyDataGridView.Columns.Add(myCheckBoxColumn);




答案 3 :(得分:0)

你可以用一个循环来完成:

var txt = 'Transfer Successful! You transferred';
var first = true;
for (var key in data) {
    if (key !== "status") {
        first ? (first = false) : (txt += ", ");
        txt += data[key] + " " + key;
    }
}