2017-06-07 23 views
3

我有这样的代码:添加两个引号中的JavaScript

var event = { 
 
    "temperature" : 12.45, 
 
    "humidite" : 45.78, 
 
    "built" : "charone", 
 
    "fire" : "chartwo", 
 
    "topic" : "sk1_001/data" 
 
}; 
 
    
 
var keys = Object.keys(event); 
 
    
 
valeurs_d = ""; 
 
for (var i = 0; i < keys.length -1 ; i++) 
 
valeurs_d += event[keys[i]] + ", "; 
 
var str5 = ","; 
 
var str6 = str5.concat(valeurs_d); 
 
var valeurs = str6.substring (0, str6.length - 2); console.log(valeurs);

我想有这样的变量valeurs两个引号之间的一切:

, '12 .45 ', '45 .78', 'charone', 'chartwo' 

或者,只需在两个引号之间加上字符串:

, 12.45, 45.78, 'charone', 'chartwo' 

我可以在我的JSON其他字符串。

我该如何在JavaScript中做到这一点?

+1

并不清楚预期的结果是什么? – guest271314

+1

你的问题不是很清楚......你询问的价值已经在引号中,不是吗? – Santi

+0

OP希望引号也包含在字符串中。 –

回答

1

你可以检查的类型和周围添加一些报价。

var event = { temperature : 12.45, humidite : 45.78, built : "charone", fire : "chartwo", topic : "sk1_001/data" }, 
 
    result = ',' + Object 
 
     .keys(event) 
 
     .slice(0, -1) 
 
     .map(k => typeof event[k] === 'string' ? '\'' + event[k] + '\'' : event[k]) 
 
     .join(','); 
 

 
console.log(result);

+0

好的答案:),谢谢! –

2

很简单,

var event = { 
 
    "temperature" : 12.45, 
 
    "humidite" : 45.78, 
 
    "built" : "charone", 
 
    "fire" : "chartwo", 
 
    "topic" : "sk1_001/data" 
 
}; 
 
    
 
var keys = Object.keys(event); 
 
    
 
valeurs_d = ""; 
 
for (var i = 0; i < keys.length -1 ; i++) 
 
valeurs_d += "\'" + event[keys[i]]+ "\'" + ", "; 
 
var str5 = ","; 
 
var str6 = str5.concat(valeurs_d); 
 
var valeurs = str6.substring(0, str6.length - 2); console.log(valeurs);

只是逃避这些单引号和他们串连你的价值观。

如果要在字符串中使用双引号,请使用"\""而不是"\'"

+0

好的回答湿婆家伙......加上一个 –

+0

谢谢,如果我想:,12.45,45.78,'charone','chartwo'? 我如何继续? –

0

尝试更换这一行:

valeurs_d + =事件[键[I]] + “”;

为这一个

valeurs_d + = “”“ +事件[键[I]] +“”,“;

+0

这不回答问题。为什么你认为这是答案? _它是如何工作的?简单地告诉别人没有任何语境或意义来改变他们的代码,不会**帮助他们了解他们做错了什么。 – GrumpyCrouton

1

您可以直接添加引号到您在此示例建设,如字符串:

var event = { 
 
    "temperature": 12.45, 
 
    "humidite": 45.78, 
 
    "built": "charone", 
 
    "fire": "chartwo", 
 
    "topic": "sk1_001/data" 
 
}; 
 

 
var keys = Object.keys(event); 
 

 
var valeurs_d = ""; 
 
for (var i = 0; i < keys.length - 1; i++) { 
 
    valeurs_d += "'" + event[keys[i]] + "', "; 
 
} 
 
    
 
console.info(valeurs_d);

0

考虑这一点,如果它是一个字符串:

var str = "chartwo" 
var str_with_qoutes = "'" + str + "'"; 
1

如果您使用的是最新版本的大多数主流浏览器,则可以使用Object.values()

var event = { 
 
    "temperature" : 12.45, 
 
    "humidite" : 45.78, 
 
    "built" : "charone", 
 
    "fire" : "chartwo", 
 
    "topic" : "sk1_001/data" 
 
}; 
 
    
 
console.log(Object.values(event));

如果你真的想要的号码作为字符串也一样,最后一行更改为console.log(Object.values(event).map(value => String(value)))

如果您需要最初的逗号,只需添加它:', ' + Object.values(event).map(value => String(value))

+0

再多一点...引用这些数字。也许是将数字转换为字符串的前一步? –

0

如果正确解释的问题,你可以使用Object.values()Array.prototype.join()与参数"','",模板文字

var event = { 
 
    "temperature" : 12.45, 
 
    "humidite" : 45.78, 
 
    "built" : "charone", 
 
    "fire" : "chartwo", 
 
    "topic" : "sk1_001/data" 
 
}; 
 
    
 
var valeurs = `",'${Object.values(event).join("','")}'"`; 
 
    
 
console.log(valeurs);