使用另一个hashmap值搜索javascript hashmap
我有两个HashMap,hashmap1和hashmap2。每个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',
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)