Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取字典中具有相同值的不同键?_Javascript_Arrays_Dictionary_Object_Key - Fatal编程技术网

Javascript 如何获取字典中具有相同值的不同键?

Javascript 如何获取字典中具有相同值的不同键?,javascript,arrays,dictionary,object,key,Javascript,Arrays,Dictionary,Object,Key,我有一个这样的字典,正如你们所看到的,我有两个相同的数组值,用于两个不同的键。我的问题是:如何通过输入一个值来获得这两个键?我希望获得具有相同值的所有键作为输出。这是因为在我的项目中,我只能在检测音符时使用尖锐或平坦(不能同时使用两者) var字典={ “Cmaj7”:[“C”、“E”、“G”、“B”],//专业 “C#maj7”:[“C#”,“F”,“G#”,“C”], “Dbmaj7”:[“C”、“F”、“G”、“C”] 像这样的东西 var字典={ “Cmaj7”:[“C”、“E”、“G

我有一个这样的字典,正如你们所看到的,我有两个相同的数组值,用于两个不同的键。我的问题是:如何通过输入一个值来获得这两个键?我希望获得具有相同值的所有键作为输出。这是因为在我的项目中,我只能在检测音符时使用尖锐或平坦(不能同时使用两者)

var字典={
“Cmaj7”:[“C”、“E”、“G”、“B”],//专业
“C#maj7”:[“C#”,“F”,“G#”,“C”],
“Dbmaj7”:[“C”、“F”、“G”、“C”]
像这样的东西

var字典={
“Cmaj7”:[“C”、“E”、“G”、“B”],//专业
“C#maj7”:[“C#”,“F”,“G#”,“C”],
“Dbmaj7”:[“C”、“F”、“G”、“C”]
var newObj={}
for(字典中的var o){
var reverseKey=dictionary[o]。连接(“”);
如果(!newObj[reverseKey])newObj[reverseKey]=[];
newObj[reverseKey].push(o);
}

console.log(newObj)
您可以通过
数组、过滤器
数组、每个
数组来解决此问题。一些
数组。包括如下所示的

var data={“Cmaj7”:[“C”、“E”、“G”、“B”],“C#maj7”:[“C#”,“F”,“G#”,“C”],“Dbmaj7”:[“C#”,“F”,“G#”,“C”]
常量e=对象。条目(数据)
常量dubs=e.filter([k1,v1])=>v1.every(v=>e.some([k2,v2])=>k1!=k2&&v2.includes(v)))
const result=dubs.reduce((acc[k,v])=>(acc[k]=v,acc),{})

console.log(result)
值数组总是以相同的方式排序吗?嗨!不,它们也可以是随机顺序。重要的是它们包含相同的字符串值ray filter、every和includes?