2012-01-08 12 views
2

これは簡単な作業であると謝罪しています。私はグーグルで検索しています。だから、とにかく....JavascriptまたはJQueryを使用してリストを構造体に変換する

は、私は、この持っている:

var myList = "key1,value1,key2,value2" 

をそして、私はこの文字列で構造体を移入したいので、私はこのようにそれを参照することができます。

alert(myList.key1) // displays value1 

思考?おそらくJQueryの.each()でこれを行うための方法がありますか?私は真剣にいずれかの方法で失われています!たぶん、本当に遅くて、私はJSとJQueryを長い間中断した後、もう一度自分自身に慣れていくことに悩まされてきたのかもしれません。どんな助けもありがとう!

+0

は、[この質問](http://stackoverflow.com/q/8751034/218196)を見てください。配列を作成するだけで済みます。これは '.split()'で簡単に行えます。 –

答えて

5

あなたは値でコンマを持っていることはありません、あなたはsplitを使用して開始したと仮定すると:

var parts = myList.split(",");// ["key1", "value1", ...] 

そこから、あなただけの単純なループを使用することができますthis答えが指摘するように

var obj = {}; 
for (var i = 0; i < parts.length; i+=2) obj[parts[i]] = parts[i + 1]; 

を、次のようにループを書くこともできます:

var obj = {}; 
while (parts.length) obj[parts.shift()] = parts.shift(); 

Thこれを書くにはきちんとした方法ですが、動作は異なります。このループの後にpartsは空になります。

+1

また、['Array.shift()'](https:// developerを使用して非常にエレガントで洗練されたソリューションを提供する[この回答](http://stackoverflow.com/a/8751218/990877)を見てください。 mozilla.org/ja/JavaScript/Reference/Global_Objects/Array/shift)。 – PPvG

+0

@PPvG:それはきちんとした考えです。 –

2

String.replace方法は、あなたの最初の選択肢である、それは文字列解析の作業に来るとき

var myList = "key1,value1,key2,value2" 
var result = {} 

myList.replace(/(\w+),(\w+)/g, function($0, $1, $2) { 
    result[$1] = $2 
}) 
関連する問題