2017-09-12 7 views
0

key: valueと一致する場合は、次の文字列をコンマで区切ります。コンマそれは私がこのような結果に終わるしたいvalueキー値のペアに文字列を分割する

const string = "country: Kenya, city: Nairobi, population: 3.375M, democracy-desciption: Work in progress/ Not fully met, obstacles exist"

にコンマに遭遇するまで、作品によって分割:

[[country: Kenya], 
[city: Nairobi], 
[population: 3.375M], 
[democracy-description: Work in progress/ Not fully met, obstacles exist]] 

は、事前にありがとうございます。簡単に

+0

[について私が尋ねることができますどのような話題](http://stackoverflow.com/help/on-topic)と[避けるためにどのような話題](httpsをお読みください(http://stackoverflow.com/help/how-to-ask)と[[最小限の、完全で検証可能な例を作成する](http://stackoverflow.com/help/how-to-ask) ://stackoverflow.com/help/mcve)また、[ツアーに参加する](http://stackoverflow.com/tour)も参照してください。 *あなたのコードを修正するのに非常に喜んでいますが、あなたのためのコードを書くことはできません。 –

+0

私はそれをすべて読んだ。 @ NathanP。 – Nate

答えて

3

本のうち建てオブジェクトに

const table = 
string.split(",") //["key:value","key:value"] 
    .map(pair => pair.split(":")); //[["key","value"],["key","value"]] 

ストリンgはカンマとコロンが続くかどうかを調べることで表示されます。 // stackoverflowの:

var string = "country: Kenya, city: Nairobi, population: 3.375M, democracy-desciption: Work in progress/ Not fully met, obstacles exist, foo: bar, bar, bar"; 
 

 
console.log(string.split(/, (?=[^,]+:)/).map(s => s.split(': ')));
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

私は正規表現の使用を考えていませんでした。どうもありがとうございます! – Nate

1

const result = {}; 
table.forEach(([key,value]) => result[key] = value); 

//usable as: 

console.log(result.country); 

やJSマップを使用します:

あなたが分割することができ
const result = new Map(table); 

//usable as: 

console.log(result.get("country")); 

Try it out

関連する問題