在javascript对象中查找键并返回结果

在javascript对象中查找键并返回结果,javascript,algorithm,object,Javascript,Algorithm,Object,我有下面的算法,我在数组中传递,我计算数组中每个数字的数量。然后我需要根据每个数字在数组中出现的次数返回一个结果。结果没有改变,所以我创建了一个查找表,可以在下面我的scoreResults对象中找到: const scoreResults = { 1: { 1:100 3:1000 }, 2: { 3: 200 }, 3: { 3:300 }, 4: { 3:400

我有下面的算法,我在数组中传递,我计算数组中每个数字的数量。然后我需要根据每个数字在数组中出现的次数返回一个结果。结果没有改变,所以我创建了一个查找表,可以在下面我的
scoreResults
对象中找到:

  const scoreResults  = {
    1: {
      1:100
      3:1000
    },
    2: {
      3: 200
    },
    3: {
      3:300
    },
    4: {
      3:400
    },
    5: {
      3:500
      1:50
    },
    6: {
      3:600
    },
  }


 // example dice [2,3,6,6,6]
function score(dice) {
[...]
  return getResult(mapping); // mapping = {2:1, 3:1, 6:3}
}

function getResult(object){
 for (const key in object){

[CODE I CANNOT FIGURE OUT]

 }
 
}
对于我无法理解的部分,我希望执行以下操作:

现在我想检查
映射
对象中的每个键。例如,让我们在我的
映射
对象中取键值对
6:3
。如果键
6
在我的
scoreResults
对象(它是什么)中,请检查映射对象(它是3)中键6的
,如果是3,则检查这里是否有键3,在6键内:
6:{3:600},
返回600(值),如果不是,则不返回任何内容

另一个例子: 对于my
mapping
对象中的键值对
2:1
,我想查看key
2
是否在my
scoreResults
对象(它是什么)中,检查我的映射对象中key
2
值是什么,在my
scoreResults中的键
2
的值中没有
1
,因此不返回任何内容

基本上,我正在尝试解决这个算法:


如果您需要进一步澄清,请告诉我这是您的解决方案。可以使用object.keys从对象的键创建数组。就像我在这里做的一样,你可以使用一个参数来代替我预先定义的映射对象

const scoreResults={
1: {
1:100,
3:1000
},
2: {
3: 200
},
3: {
3:300
},
4: {
3:400
},
5: {
3:500,
1:50
},
6: {
3:600
},
}
设映射={2:1,3:1,6:3}
函数getResult(){
让结果;
常量键=Object.keys(映射);
key.map(key=>{
if(评分结果[关键点][关键点]){
结果=得分结果[关键点][关键点];
}
})
返回结果;
}

要使其适用于任何分数结果和骰子数,您可以执行以下操作:

function getResult(mapping) {
    let res = 0
    for (let key of Object.keys(mapping)) {
        if (!scoreResults[key])
             continue
        let count = mapping[key]
        let test = count
        while (count > 0 && test > 0) {
            if (scoreResults[key][test]) {
                let amount = Math.floor(count / test)
                res += amount * scoreResults[key][test]
                count -= amount * test
                test = count
            } else {
                test--
            }
        }
    }
    return res
} 

您刚才描述了代码必须执行的操作。试着在句子后面写下代码<代码>如果关键字6在我的scoreResults对象中
-->
如果(scoreResults[6])
例如,您可以接受答案吗。这些答案显然可以解决这个问题。