如何在javascript数组中创建动态键和值

如何在javascript数组中创建动态键和值,javascript,arrays,Javascript,Arrays,输入JSON 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"]} 如何创建新数组。。根据通行证号码推送ID 例:循环显示 passid=>2。。。。eid=>12,20 2 ==> ["12","20

输入JSON

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"]}
如何创建新数组。。根据通行证号码推送ID

例:循环显示

passid=>2。。。。eid=>12,20

2 ==> ["12","20"]
1 ==> [12, 11]
3 ==> [11,20]
使用和检查
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]

更新

在下班回家的路上意识到你实际上不需要一些。此外,为了回答您的评论,以下是您可以如何搜索
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]

毫无意义,甚至看起来都不像有效的JSON?请参考andy提供的ans。谢谢。。这里可以用性别过滤并传递id??抓取器(数据,0,1);//[ 11]