teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

bugfix

2015/02/09 03:32

投稿

munyaX
munyaX

スコア783

answer CHANGED
@@ -39,13 +39,13 @@
39
39
  "<table>"を表示
40
40
  for(var tr in json){
41
41
  "<tr>"を表示
42
- for(var i in tr){
42
+ for(var i=0; i<tr.length; i++){
43
43
  "<td>"を表示
44
- if( i が 配列であれば){
44
+ if( tr[i] が 配列(オブジェクト)であれば ){
45
- json2table(i); //再帰
45
+ json2table(tr[i]); //再帰
46
46
  }
47
47
  else{
48
- iを表示
48
+ tr[i]を表示
49
49
  }
50
50
  "</td>"を表示
51
51
  }

3

JSONっぽく修正

2015/02/09 03:32

投稿

munyaX
munyaX

スコア783

answer CHANGED
@@ -1,8 +1,8 @@
1
1
  例えば以下のようなJSONがあったら
2
2
  ```lang-javascript
3
- var json = [
3
+ var json = {
4
4
  [1, 2, ['a', 'b', 'c']]
5
- ];
5
+ };
6
6
  ```
7
7
  以下のようなHTMLを吐く感じでしょうか?
8
8
  ```lang-html
@@ -31,9 +31,9 @@
31
31
 
32
32
  ```lang-javascript
33
33
 
34
- json2table([
34
+ json2table({
35
35
  [1, 2, ['a', 'b', 'c']]
36
- ]);
36
+ });
37
37
 
38
38
  function json2table(json){
39
39
  "<table>"を表示

2

bugfix.

2015/02/09 03:28

投稿

munyaX
munyaX

スコア783

answer CHANGED
@@ -40,12 +40,14 @@
40
40
  for(var tr in json){
41
41
  "<tr>"を表示
42
42
  for(var i in tr){
43
+ "<td>"を表示
43
44
  if( i が 配列であれば){
44
45
  json2table(i); //再帰
45
46
  }
46
47
  else{
47
- "<td>"+ i +"</td>"を表示
48
+ iを表示
48
49
  }
50
+ "</td>"を表示
49
51
  }
50
52
  "</tr>"を表示
51
53
  }

1

追記

2015/02/09 03:23

投稿

munyaX
munyaX

スコア783

answer CHANGED
@@ -24,6 +24,7 @@
24
24
  ```
25
25
 
26
26
  この理解で正しい場合、確かにjQueryのプラグインでは見かけたことないですね。
27
+ (私も知らないだけで探せばあるのかもしれませんが)
27
28
 
28
29
  ただ自分で書いてもそこまで難しいコードにはならないと思いますよ。
29
30
  以下、擬似コードですが、