gpt4 book ai didi

javascript - 我怎样才能以最少的复杂性获得结果?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:13:54 25 4
gpt4 key购买 nike

我有一个这样的嵌套对象 -

finalObj = {

"1" : {
"1" : 0.6,
"2" : 0.3,
"3" : 0.1,
"score" : "a,b"
},
"3" : {
"2" : 0.4,
"3" : 0.4,
"4" : 0.2,
"score" : "c,d"
},
"4" : {
"1" : 0.6,
"4" : 0.4,
"score" : "e,f"
}

var newObj = {
"1": [0.6 * (a / b) + 0.6 * (e / f)] / (0.6 + 0.6),
"2": [0.3 * (a / b) + 0.4 * (c / d)] / (0.6 + 0.4),
"3": [0.1 * (a / b) + 0.4 * (c / d)] / (0.1 + 0.4),
"4": [0.2 * (c / d) + 0.4 * (e / f)] / (0.2 + 0.4)
}

var obj = {};
for (let key in finalObj) {
console.log(key) // "1" , "3" , "4"
for (let bey in finalObj[key]) {
if (bey !== "score") {
var x = finalObj[key]["score"].split(",")
if (obj.hasOwnProperty(bey)) {
console.log(x[0] + " if " + x[1])
obj[bey] += finalObj[key][bey] * x[0] / x[1]
}
else {
console.log(x[0] + " else " + x[1])

obj[bey] = finalObj[key][bey] * x[0] / x[1]
}
}

}
}

外部对象的键指的是“question_id”,内部嵌套对象的键指的是“skills_id”及其权重,“scores” 在以逗号分隔的字符串中有两个值。示例 -“1”、“3”、“4” 是 question_id。内部问题 ID “1”:“1”、“2”、“3” 是指该问题的技能 ID。“分数”有“a(获得的分数),b(总分) "

我想返回另一个具有技能 ID 的对象及其归一化分数 - newObj

//其中“1”、“2”、“3”、“4”都是用上面的公式标准化后的技能id。

//我需要使用多少个循环来实现这个?这是将数据放入嵌套对象的正确方法吗?

//我现在正在尝试这样的事情 - //请帮忙 - //我得到了输出,但代码看起来很奇怪!

最佳答案

我会预先收集左右值进行求和,并在最后一步构建除法的结果。

为了获取值,我建议使用具有相应键的适当对象。

var data = { 1: { 1: 0.6, 2: 0.3, 3: 0.1, score: "a,b" }, 3: { 2: 0.4, 3: 0.4, 4: 0.2, score: "c,d" }, 4: { 1: 0.6, 4: 0.4, score: "e,f" } },
values = { a: 45, b: 50, c: 35, d: 40, e: 5, f: 10 },
collection = {},
div = (a, b) => a / b,
result;

Object
.entries(data)
.forEach(([k, o]) => Object
.entries(o)
.filter(([l]) => l !== 'score')
.forEach(([l, v]) => {
collection[l] = collection[l] || { left: 0, right: 0 };
collection[l].left += v * o.score.split(',').map(k => values[k]).reduce(div);
collection[l].right += v;
})
);

result = Object.assign(...Object
.entries(collection)
.map(([k, o]) => ({ [k]: o.left / o.right }))
);

console.log(result);
console.log(collection);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 我怎样才能以最少的复杂性获得结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52818415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com