如何在JavaScript中检查映射数组值是否使用不同的键重复?
我有一个以“String”作为键,“Array”作为值的映射。 现在我的问题是如何检查数组项是否存在于不同的“数组”值中?i、 e.地图中不同键的“数组” 例如:如何在JavaScript中检查映射数组值是否使用不同的键重复?,javascript,arrays,collections,hashmap,iterator,Javascript,Arrays,Collections,Hashmap,Iterator,我有一个以“String”作为键,“Array”作为值的映射。 现在我的问题是如何检查数组项是否存在于不同的“数组”值中?i、 e.地图中不同键的“数组” 例如: var map = { "KeyA" : [123,111,100], "KeyB" : [147,123,789] } 如何检查数组项123是否存在两个不同的键,即键A和键B 谢谢, Abhi您可以创建一个通用方法,并使用every()检查数组中的值: let map={ “KeyA”:[123111100], “KeyB”:[
var map = {
"KeyA" : [123,111,100],
"KeyB" : [147,123,789]
}
如何检查数组项123是否存在两个不同的键,即键A和键B
谢谢,
Abhi您可以创建一个通用方法,并使用
every()
检查数组中的值:
let map={
“KeyA”:[123111100],
“KeyB”:[147123789],
“KeyC”:[147148789]
};
let checker=(对象、键、值)=>{
返回键。每个(k=>obj[k]。包括(val));
}
控制台日志(checker(map,[“KeyA”,“KeyB”],123))代码>我们可以使用Object.keys()和filter实现这一点,然后如果该数组中存在值,我们将返回键
我选择使用indexOf()而不是includes(),因为没有polyfil的Internet Explorer不支持它
const map = {
"KeyA" : [123,111,100],
"KeyB" : [147,123,789]
}
function checkForValue(array, value) {
return Object.keys(array)
.filter(key => (array[key].indexOf(value) !== -1) ? key : null);
}
console.log(checkForValue(map, 123)); // [ 'KeyA', 'KeyB']
您好,Mohammad,我可以在checker方法的第二个参数中传递键数组,但我可以在第三个参数中传递值数组。表示您提到的地图的唯一值数组为[123111147148789100]。因此,如果我将这个数组作为第三个参数传递,那么我可以检查123、147或789是否存在于具有不同键的映射中,谢谢,