@scsiva1991/array-filter
Version:
A small library to filter array of objects and return as a simple array
80 lines (69 loc) • 1.98 kB
JavaScript
;
module.exports = {
/**
* Filter an array of objects from first array list
* which presents in array2
* and return result as an array
* @param {array1} array
* @param {array2} array
* @param {key} string
* @return {array}
*/
getIncludedObjs : function( array1, array2, key ) {
if( !Array.isArray(array1) || !Array.isArray(array2) )
return [];
return array1.filter( function(r1) {
return array2.some( function(r2) {
return r2[key] === r1[key];
});
});
},
/**
* Filter an array of objects from first array list
* which are absent in array2
* and return result as an array
* @param {array1} array
* @param {array2} array
* @param {key} string
* @return {array}
*/
getExcludedObjs: function( array1, array2, key ) {
if( !Array.isArray(array1) || !Array.isArray(array2) )
return [];
return array1.filter( function(r1) {
return !array2.some( function(r2) {
return r2[key] === r1[key];
});
});
},
/**
* Filter an array of items from first array list
* which are present in array2
* and return result as an array
* @param {array1} array
* @param {array2} array
* @return {array}
*/
getIncludedItems: function( array1, array2 ) {
if( !Array.isArray(array1) || !Array.isArray(array2) )
return [];
return array1.filter( function(r1) {
return array2.indexOf(r1) > -1;
});
},
/**
* Filter an array of items from first array list
* which are absent in array2
* and return result as an array
* @param {array1} array
* @param {array2} array
* @return {array}
*/
getExcludedItems: function( array1, array2 ) {
if( !Array.isArray(array1) || !Array.isArray(array2) )
return [];
return array1.filter( function(r1) {
return array2.indexOf(r1) == -1;
});
}
};