Пересечение нескольких массивов на основе значения идентификатора


Я делаю пересечение между 5 массивов по значению идентификатора. Мне было интересно, если есть более эффективный способ сделать это без использования выберите фильтры и, если это может быть сделано с меньше кода в стандарте JavaScript.

var category = [{id:123,'Name':'Batman','var':'category'},{'id':'124','Name':'Superman','var':'category'},{'id':'126','Name':'Wonderwoman','var':'category'}];
    var region   = [{id:123,'Name':'Batman','var':'region'},{'id':'125','Name':'Spiderman','var':'region'},{'id':'127','Name':'Hulk','var':'region'}];
    var Opleidingstype   = [{id:123,'Name':'Batman','var':'Opleidingstype'},{'id':'125','Name':'Spiderman','var':'Opleidingstype'},{'id':'127','Name':'Hulk','var':'Opleidingstype'}];
    var Opleidingsduur   = [{id:129,'Name':'Batman','var':'Opleidingsduur'},{'id':'125','Name':'Spiderman','var':'Opleidingsduur'},{'id':'127','Name':'Hulk','var':'Opleidingsduur'}];
    var Diploma   = [{id:123,'Name':'Batman','var':'Diploma'},{'id':'125','Name':'Spiderman','var':'Diploma'},{'id':'127','Name':'Hulk','var':'Diploma'}];


        var res1 = alasql('SELECT id FROM ? \
                 INTERSECT SELECT id FROM ? \
                 INTERSECT SELECT id FROM ?',[category,region, Opleidingstype ,Opleidingsduur, Diploma]);

    var res2 = alasql('SELECT one.* FROM ? one \
                 WHERE EXISTS(SELECT * FROM ? WHERE one.id = id) \
                 ORDER BY id', 
                 [category.concat(region).concat(Opleidingstype).concat(Opleidingsduur).concat(Diploma), res1]);

    alasql('SELECT * INTO HTML("#res",{headers:true}) FROM ?',[res2]);


134
0
задан 16 марта 2018 в 03:03 Источник Поделиться
Комментарии