2015-08-19 2 views
0

ввода JSONкак создать динамический ключ и valuse в яваскрипт массиве

0===>{"eid":12,"gender":"1","age":1,"pass":["2","1"]} 
1===>{"eid": 11,"gender":"0","age":1,"pass":["1","3"]} 
2===>{"eid":20,"gender":"1","age":1,"pass":["2","3"]} 

как создать новый массив .. раздвинуть идентификаторы, основанные на числах проходных

Ex: IN дисплей петли

passid => 2 .... Ид => 12, 20

2 ==> ["12","20"] 
1 ==> [12, 11] 
3 ==> [11,20] 
+1

не имеет никакого смысла вообще, и даже не выглядеть действительным JSON? – adeneo

+0

см. Анс от andy .. – Subha

ответ

2

Использование filter и some проверить содержимое pass массива, а затем возвращают соответствующие eid значения:

function grabber(data, pass) { 
    return data.filter(function (el) { 
     return el.pass.some(function (num) { 
      return +num === pass; 
     }) 
    }).map(function (el) { 
     return el.eid; 
    }); 
} 

grabber(data, 1); // [12, 11] 
grabber(data, 2); // [12, 20] 
grabber(data, 3); // [11, 20] 

DEMO

UPDATE

Реализованный на пути домой с работы, вы на самом деле не нужно some. Кроме того, чтобы ответить на Ваш комментарий, вот как вы можете искать pass и gender:

function grabber(data, options) { 
    return data.filter(function (el) { 
     return el.pass.indexOf(options.pass) > -1 && el.gender === options.gender; 
    }).map(function (el) { 
     return el.eid; 
    }); 
} 

grabber(data, { gender: '0', pass: '1' }); // [11] 

DEMO

+0

Спасибо, .. здесь можно отфильтровать с пол и пройти id ?? граббер (данные, 0, 1); // [11] – Subha

+0

@ Субра, см. Обновленный ответ. – Andy

+0

Отлично работает отлично .. Спасибо – Subha

Смежные вопросы