gpt4 book ai didi

javascript - 循环遍历JS对象返回value的匹配结果

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:17:14 24 4
gpt4 key购买 nike

我有一个对象,里面装满了鲑鱼。我想循环检查三文鱼是新鲜的还是冷冻的。如果冷冻,则不放入堆,如果新鲜,放入是堆。如果盎司小于 2 且大于 6,则不堆,如果匹配 2-6,则堆。

然后,对于 yes 堆,我想遍历这些键和值以找到最便宜的,并将其打印出来。

到目前为止,这是我所拥有的,但我似乎一直在循环遍历大对象以运行检查。

我该怎么做?

function findSalmon(salmonInStore){
var noPile,
yesPile;
var salmon = Object.keys(salmonInStore));
for(var key in salmonInStore){

if(salmonInStore.key.freshness !== 'fresh'){
noPile.push(salmonInStore.key);
} else {
yesPile.push(salmonInStore.key);
}
if(salmonInStore.key.ounces < 2 && salmonInStore.key.ounces > 6){
noPile.push(key);
}else {
yesPile.push(salmonInStore.key);
}
}
return yesPile;
}

var salmonInStore = {
salmon1 : {
ounces: 1,
freshness: 'frozen',
price: 16
},

salmon2 : {
ounces: 6,
freshness: 'fresh',
price: 10
},

salmon3 : {
ounces: 2,
freshness: 'frozen',
price: 20
},

salmon4 : {
ounces: 5,
freshness: 'fresh',
price: 1
},

salmon5 : {
ounces: 3,
freshness: 'frozen',
price: 12
}
}

findSalmon(salmonInStore);

最佳答案

首先我们可以按价格对鲑鱼列表进行排序。

const salmonList = Object.keys(salmonInStore)
.map(key => salmonInStore[key])
.sort((a,b) => {
if (a.price < b.price)
return -1;
if (a.price > b.price)
return 1;

return 0;
});

然后我们可以过滤掉是的鱼。

const yesPile = salmonList.filter((salmon) => {
return salmon.ounces >= 2 && salmon.ounces <= 6 && salmon.freshness === 'fresh';
});

yesPile[0] // cheapest fish

查看 fiddle 以获得工作示例。

https://jsfiddle.net/y1jg01wy/

关于javascript - 循环遍历JS对象返回value的匹配结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47320746/

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