前提・実現したいこと
JavaScript、jQueryで、多次元配列から指定キーの配列を取得したいです。
宜しくお願い致します。
発生している問題・エラーメッセージ
「試したこと」にあるように、JavaScriptとjQueryと試した結果、以下のエラーとなります。
まずJavaScriptの方ではundefinedです。
undefined
そしてjQueryの場合のエラーは、日付の指定がわからずこちらです。
v['d{4}/d{2}'] is undefined
該当のソースコード
元になる配列です。
おおまかには、「月の下にidとuxが並ぶ」という構造です。
これを一番下の配列ごとに取得し、それぞれ「hoo()」をかけたいと思っています。
js
1var array = { 2 "postA":{ 3 "2019/05":[ 4 {"id":1,"ux":a}, 5 {"id":2,"ux":b} 6 ], 7 "2019/04":[ 8 {"id":3,"ux":c} 9 ] 10 }, 11 "postB":{ 12 "2019/05":[ 13 {"id":4,"ux":d}, 14 {"id":5,"ux":e} 15 ] 16 } 17}; 18 19function hoo(data){ 20 $('body').append('<p>'+data['id']+'</p>と<p>'+data['ux']+'</p>'); 21}
試したこと
以下、エラーの出るコートです。
まずJavaScriptでforを使ってみたのですが、上のように「undefined」となってしまいます。
js
1for (let key in array) { 2 for (let k in key) { 3 const data = { 4 id: k.id, 5 ux: k.ux 6 }; 7 hoo(data); 8 } 9}
続いてjQueryのeachを使ってみたものの、不確定な日付をどう指定すればいいかわからず、正規表現を使ってみましたが上のエラーになってしまいました。
jqeury
1$.each(array, function(i, v) { 2 const data = { 3 id: v['\d{4}/d{2}']['id'], 4 ux: v['\d{4}/d{2}']['ux'] 5 }; 6 hoo(data); 7});
補足情報(FW/ツールのバージョンなど)
「hoo()」がかかった状態として最終的に想定している出力は次のものです。
よろしければこの出力にすべく正しいソースコードをご教授願えませんでしょうか。
html
1 2<p>1とa</p> 3<p>2とb</p> 4<p>3とc</p> 5<p>4とd</p> 6<p>5とe</p> 7

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/31 08:34
2019/05/31 08:48
2019/05/31 08:51
2019/05/31 09:02
2019/05/31 09:03
2019/05/31 09:30