2016-11-22 1 views
0
"info": { 
    "core": [{ 
     "name": "User", 
     "fields": [{ 
      "field": "name", 
     }, { 
      "field": "age", 
     }] 
    }, { 
     "name": "Post", 
     "fields": [{ 
      "field": "title", 

     }, { 
      "field": "body", 
     }, { 
      "field": "author", 
     }] 
    }] 
} 

구조 데이터를 어떻게 매핑 할 수 있습니까?Lodash 오브젝트의 배열 안에있는 맵 배열

1.

  • 이름 값
  • 필드
    • 필드 값
    • 필드 값

2 : 나는 웹보기에 이런 식으로 뭔가를 달성하려면 .

  • 이름 값
  • 필드
    • 필드 값
    • 필드 값

등등 ...

나는 같이 lodash지도를 사용하여 시도 이것들은 좋은 방법입니까?

const info = _.map(info.core, function (value: any) { 
    const fields = _.map(value.fields, function (fields: any) { 
    return field; 
    }); 

    const demo = { 
    name: name, 
    fields: fields.join('') 
    }; 

    return demo; 
}); 

console.log(demo); 

답변

1

매핑해야하는 이유가 확실하지 않습니다. 어쩌면 나는이 질문을 오해하고있다.

이 데이터를 렌더링하고 그대로 해석하면 더 이상 변환 할 필요가 없습니다. 난 그냥 간단하게하기 위해 document.write를 사용했지만, 더 좋은 방법은 감사

var info = { 
 
    "core": [{ 
 
     "name": "User", 
 
     "fields": [{ 
 
      "field": "name", 
 
     }, { 
 
      "field": "age", 
 
     }] 
 
    }, { 
 
     "name": "Post", 
 
     "fields": [{ 
 
      "field": "title", 
 

 
     }, { 
 
      "field": "body", 
 
     }, { 
 
      "field": "author", 
 
     }] 
 
    }] 
 
} 
 

 
var w = document.write.bind(document); 
 

 
info.core.forEach((c,i) => { 
 
    w(`<p>${i+1}.</p>`); 
 
    w('<ul>'); 
 
    w(`<li>${c.name}</li>`); 
 
    w('<li>fields'); 
 
    w('<ul>'); 
 
    c.fields.forEach((f) => { 
 
    w(`<li>${f.field}</li>`); 
 
    }); 
 
    w('</ul>'); 
 
    w('</li>'); 
 
    w('</ul>'); 
 
});

+0

등의 createElement와 직접 DOM을 조작하는 것입니다 아래

. 해결 됐어. –