gpt4 book ai didi

javascript - 查找对象中最接近的整数

转载 作者:太空宇宙 更新时间:2023-11-04 15:51:40 25 4
gpt4 key购买 nike

正如标题所说,我正在尝试查找对象中最接近的整数,我的数据按以下方式存储,我无法更改其存储方式。

{"response":
{"success":1,"current_time":1490650140,"items":
{"AK-47 | Aquamarine Revenge (Battle-Scarred)":{"last_updated":1490648718,"quantity":98,"value":1120},
"AK-47 | Aquamarine Revenge (Factory New)":{"last_updated":1490648718,"quantity":47,"value":3229},
"AK-47 | Aquamarine Revenge (Field-Tested)":{"last_updated":1490648718,"quantity":159,"value":1623}
}
}
}

我想找到最接近给定数字 (x) 的项目。如果元素值(value)相同,则应该选择其中之一。我知道我需要一个循环,但我不知道从哪里开始。

我正在尝试找到与 obj 中的值最接近的整数 x。

最佳答案

您可以在对象上使用 for..in ,或使用数组迭代方法 for.forEach 等,方法是Object.keys(data.response.items)(这将为您提供一个对象键数组)。

const data = {"response":
{"success":1,"current_time":1490650140,"items":
{"AK-47 | Aquamarine Revenge (Battle-Scarred)":{"last_updated":1490648718,"quantity":98,"value":1120},
"AK-47 | Aquamarine Revenge (Factory New)":{"last_updated":1490648718,"quantity":47,"value":3229},
"AK-47 | Aquamarine Revenge (Field-Tested)":{"last_updated":1490648718,"quantity":159,"value":1623}
}
}
};
const target = 1344;

function findClosestForIn(items, target) {
let closestVal = Infinity;
let closestObj = null;

for (let key in items) {
let obj = items[key];
let curDiff = Math.abs(obj.value - target);

if (curDiff < closestVal) {
closestVal = curDiff;
closestObj = obj;
}
}

return closestObj;
}

function findClosestObjectKeys(items, target) {
let closestVal = Infinity;
let closestObj = null;

Object.keys(data.response.items).forEach((key) => {
const obj = data.response.items[key];
const curDiff = Math.abs(obj.value - target);

if (curDiff < closestVal) {
closestVal = curDiff;
closestObj = obj;
}
});

return closestObj;
}


console.log('closest using for..in: ', findClosestForIn(data.response.items, target));
console.log('closest using Object.keys: ', findClosestObjectKeys(data.response.items, target));

关于javascript - 查找对象中最接近的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43056837/

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