2017-06-07 51 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);