使用另一个hashmap值搜索javascript hashmap

使用另一个hashmap值搜索javascript hashmap,javascript,hashmap,Javascript,Hashmap,我有两个HashMap,hashmap1和hashmap2。每个hashmap都有多个键,每个键都有多个值 var hashmap1 = { a:[ 'aaa', 'bbb' ] b:[ 'ccc', 'ddd' ] }; var hashmap2 = { a:[ 'aaa', 'bbb', 'ccc',

我有两个HashMap,hashmap1和hashmap2。每个hashmap都有多个键,每个键都有多个值

var hashmap1 = {
    a:[
         'aaa',
         'bbb'           
    ]
    b:[
        'ccc',
        'ddd'
    ]
};

var hashmap2 = {
    a:[
         'aaa',
         'bbb',
         'ccc',
    ]
    b:[
        'ddd',
        'eee',
        'fff'
    ]
};
在上面的示例中,我想检查hashmap1中每个键的所有值是否都存在于hashmap2的值中

因此,在上面的示例中,hashmap1中的所有值都存在于hashmap2的值中。如果是这种情况,可以将变量标记为true,否则将其标记为false


谢谢你的帮助

我刚刚编写了一个类似的比较函数。它使用jquery,我希望这不是问题

/**
 * Checks if an object or array is a subset of another object or array.
 * Also works with scalar types.
 *
 * @requires jQuery
 * @param {mixed} partial
 * @param {mixed} whole
 * @param {boolean} strict_arrays In arrays, compare with a[i] === b[i] instead of inArray(a[i], b). Default false.
 * @returns {boolean} 'partial' is a subset of 'whole'
 */
function is_subset(partial, whole, strict_arrays) {
    if (partial instanceof Array) {
        if (!(whole instanceof Array)) return false;
        var matches = true;
        $.each(partial, function(i, value){
            if ((!strict_arrays && $.inArray(value, whole) < 0) || (strict_arrays && value !== whole[i])) {
                matches = false;
                return false;
            }
        });
        return matches;
    } else if (typeof partial === 'object' && partial !== null) {
        if (!(typeof whole === 'object')) return false;
        var matches = true;
        $.each(partial, function(prop, value) {
            if (!is_subset(value, whole[prop])) {
                matches = false;
                return false;
            }
        });
        return matches;
    } else {
        return partial === whole;
    }
}
/**
*检查一个对象或数组是否是另一个对象或数组的子集。
*也适用于标量类型。
*
*@jQuery
*@param{mixed}partial
*@param{mixed}整
*@param{boolean}strict_数组在数组中,与a[i]==b[i]而不是inArray(a[i],b)进行比较。默认为false。
*@returns{boolean}“partial”是“thill”的子集
*/
函数是_子集(部分、整体、严格_数组){
if(数组的部分实例){
如果(!(数组的整个实例))返回false;
var匹配=真;
$。每个(部分,函数(i,值){
if((!strict_数组&&$.inArray(value,whole)<0)|(strict_数组&&value!==whole[i])){
匹配=假;
返回false;
}
});
返回比赛;
}else if(typeof partial=='object'&&partial!==null){
如果(!(typeof整=='object'))返回false;
var匹配=真;
$。每个(部分,功能(属性,值){
如果(!是_子集(值,整[prop])){
匹配=假;
返回false;
}
});
返回比赛;
}否则{
返回部分===全部;
}
}
示例用法:
is\u子集(hashmap1、hashmap2)