我正在尝试从该数组中获取具有最高数字的用户和值,但我的搜索没有运气。我开始怀疑数组是否写得不好。
{
"radtech2": 1,
"conorlarkin4": 25,
"jdon2001": 15,
"nobel_veo": 101,
"frapoden": 1,
"duckyboy17": 31,
"faeded": 30,
"jimbob20001": 17,
"leb0wski": 15,
"3cavalry": 2,
"hardoak22": 25,
"deep_slide": 10000,
"sillywil": 7
}
答案 0 :(得分:1)
const users = {
"radtech2": 1,
"conorlarkin4": 25,
"jdon2001": 15,
"nobel_veo": 101,
"frapoden": 1,
"duckyboy17": 31,
"faeded": 30,
"jimbob20001": 17,
"leb0wski": 15,
"3cavalry": 2,
"hardoak22": 25,
"deep_slide": 10000,
"sillywil": 7
};
const highestUser = users => Object.keys(users).reduce(
(highest, current) => highest.val > users[current] ? highest : { user: current, val: users[current] },
{ user: undefined, val: -Infinity }
).user;
console.log(highestUser(users));
答案 1 :(得分:0)
让我尝试使用Object.keys()和Array.reduce()将其压缩为单线方法。
const users = {
"radtech2": 1,
"conorlarkin4": 25,
"jdon2001": 15,
"nobel_veo": 101,
"frapoden": 1,
"duckyboy17": 31,
"faeded": 30,
"jimbob20001": 17,
"leb0wski": 15,
"3cavalry": 2,
"hardoak22": 25,
"deep_slide": 10000,
"sillywil": 7
};
const res = Object.keys(users).reduce((a, b) => users[a] > users[b] ? a : b);
console.log(res);
以上代码的工作方式是,我从users
对象获得了键数组,并使用reduce来获得尽可能高的值,并从从Object.keys()获得的数组中返回相应的属性。
答案 2 :(得分:0)
使用keys()
和entries()
方法搜索JSON对象。将最大价值保存到例如const largest
,然后找出哪个键属于此值。
答案 3 :(得分:-1)
问题中显示的是Object
,而不是Array
;但是,它确实需要转换为数组才能使用。
您可以使用Object.entries()
进行操作,这将返回对象中所有键/值对的数组。
然后,您可以使用Array.reduce()
提取最大的值。
const data = {
"radtech2": 1,
"conorlarkin4": 25,
"jdon2001": 15,
"nobel_veo": 101,
"frapoden": 1,
"duckyboy17": 31,
"faeded": 30,
"jimbob20001": 17,
"leb0wski": 15,
"3cavalry": 2,
"hardoak22": 25,
"deep_slide": 10000,
"sillywil": 7
}
let winner = Object.entries(data).reduce((a, b) => (a[1] > b[1]) ? a : b)
console.log(winner)