var food = {
"fruit":{"brand":{"grgrdgdr":true,"ggyugy":true}, "sold":2},
"vegetable" :{"brand":{"htrhtr":true},"sold": 1},
"snack":{"brand":{"htrhr":true},"sold": 3},
"other":{"brand":{"gdhshd":true},"sold":1},
....
...
...
};
如何控制台记录销售最多的对象名称, 在这种情况下,应该是小吃一词。
我找到了此链接,但其结构与我的不相似。 Get object keys with the highest value in Javascript
任何帮助表示赞赏 预先感谢
答案 0 :(得分:1)
您可以按values属性排序并获得第一项。
var food = { fruit: { brand: { grgrdgdr: true, ggyugy: true }, sold: 2 }, vegetable: { brand: { htrhtr: true }, sold: 1 }, snack: { brand: { htrhr: true }, sold: 3 }, other: { brand: { gdhshd: true }, sold: 1 } };
result = Object
.keys(food)
.sort((a, b) => food[b].sold - food[a].sold)
[0];
console.log(result);
答案 1 :(得分:0)
您可以使用变量并对数组进行两次迭代。在第一次迭代中,获得最高的sold
。然后在第二次迭代中,添加其sold
值与最高sold
var food = {
"fruit": {
"brand": {
"grgrdgdr": true,
"ggyugy": true
},
"sold": 5
},
"vegetable": {
"brand": {
"htrhtr": true
},
"sold": 1
},
"snack": {
"brand": {
"htrhr": true
},
"sold": 3
},
"other": {
"brand": {
"gdhshd": true
},
"sold": 1
},
"someOtherfruit": {
"brand": {
"grgrdgdr": true,
"ggyugy": true
},
"sold": 5
}
}
let highestSold = 0;
let newObj = [];
for (let keys in food) {
if (food[keys].sold > highestSold) {
highestSold = food[keys].sold
}
}
for (let keys in food) {
if (food[keys].sold === highestSold) {
newObj.push(food[keys])
}
}
console.log(newObj[0])
答案 2 :(得分:0)
首先找到最大值,然后过滤对象以获取具有最大sold
值的对象
var food = {
"fruit":{"brand":{"grgrdgdr":true,"ggyugy":true}, "sold":2},
"vegetable" :{"brand":{"htrhtr":true},"sold": 1},
"snack":{"brand":{"htrhr":true},"sold": 3},
"other":{"brand":{"gdhshd":true},"sold":1}}
var maxSold = Math.max(...Object.values(food).map(o=> o.sold))
var result = Object.keys(food).filter(o => food[o].sold ===maxSold)
console.log(result) //this will given all objects with max sold value
答案 3 :(得分:0)
您发布的链接Get object keys with the highest value in Javascript
很近
var food = {
"fruit":{"brand":{"grgrdgdr":true,"ggyugy":true}, "sold":2},
"vegetable" :{"brand":{"htrhtr":true},"sold": 1},
"snack":{"brand":{"htrhr":true},"sold": 3},
"other":{"brand":{"gdhshd":true},"sold":1}
},
result = Object
.keys(food)
.sort(function(a, b) {
return food[b].sold - food[a].sold;
})[0] // or .slice(0, 1);
console.log(result,food[result]);
.as-console-wrapper {
max-height: 100% !important;
top: 0;
}
答案 4 :(得分:0)
var food = {
"fruit":{"brand":{"grgrdgdr":true,"ggyugy":true}, "sold":2},
"vegetable" :{"brand":{"htrhtr":true},"sold": 1},
"snack":{"brand":{"htrhr":true},"sold": 3},
"other":{"brand":{"gdhshd":true},"sold":1},
};
function getMostExpensivesKey(array) {
let key = Object.keys(array)[0];
Object.keys(array).forEach(function(k) {
if(array[k].sold > array[key].sold) {
key = k;
}
});
return key;
}
console.log(getMostExpensivesKey(food));