Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var data=[{
- id:'2a345',
- name:'test',
- poll:[{id:4},{id:5}]
- },{
- id:'3b329',
- name:'prod',
- poll:[{id:2},{id:7}]
- }];
- var data_nested=[{
- id:'2a345',
- name:'test',
- poll:[{id:'2a54',inner:[{id:1},{id:8}]},{id:'3a54',inner:[{id:2},{id:9}]}]
- },{
- id:'3b329',
- name:'prod',
- poll:[{id:'2a32',inner:[{id:2},{id:7}]},{id:'3a32',inner:[{id:3},{id:6}]}]
- }
- ];
- //factory to curry function
- var findPollById=function(id,poll){
- return function(poll){
- return poll.id===id;
- }
- };
- var flattenMap=function(prop){
- return function(prev,curr){
- return [].concat.apply(prev,curr[prop]);
- }
- }
- function findPoll(id){
- return data
- .reduce(flattenMap('poll'),[])
- .find(findPollById(id));
- }
- function findInner(id){
- return data_nested
- .reduce(flattenMap('poll'),[])
- .reduce(flattenMap('inner'),[])
- .find(findPollById(id));
- }
- var poll=findPoll(4);
- var inner=findInner(2);
- console.log(poll);
- console.log(inner);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement