gpt4 book ai didi

javascript - 如何获取对象的总数组

转载 作者:行者123 更新时间:2023-12-01 21:23:49 24 4
gpt4 key购买 nike

所以我想为这个项目做的是创建一个函数,它是“findMyCampsites”,它接受三个参数,即露营地、 View 和 partySize。我试图让我的代码接受一个人的观点偏好“森林”或“海洋”以及预期派对的规模,并返回与用户输入匹配的所有可用露营地的数量。但是如果没有匹配项,函数应该返回一个空数组。到目前为止,这是我能想到的。我不明白为什么我要返回 [] 无论如何。我做错了什么?

> function findMyCampsites(campgrounds, view, partySize){
let result = []
for (i = 0; i < campgrounds.length; i++){
if (campgrounds[i].isReserved === false){
if (campgrounds[i].view === view){
result.push(campgrounds[i].view)
if (campgrounds[i].partySize === partySize){
result.push(campgrounds[i].partySize)
result = result + 1;


}
}
}return result;

}

}

这也是我的露营地对象

> let campgrounds = [
{ number: 1, view: 'ocean', partySize: 8, isReserved: false },
{ number: 5, view: 'ocean', partySize: 4, isReserved: false },
{ number: 12, view: 'ocean', partySize: 4, isReserved: true },
{ number: 18, view: 'forest', partySize: 4, isReserved: false },
{ number: 23, view: 'forest', partySize: 4, isReserved: true }
]

最佳答案

你可以使用.filter()

您可以使用逻辑 OR 运算符链接多个条件 &&

首先你检查它是否没有被 !ground.isReserved 保留。如果满足此条件,它将移至下一个条件,否则返回 false 并过滤掉当前营地。

你可以添加更多的条件,你只需要用&&链接它。

对于 partySize 我使用了更大的等于 >= 而不是 === 因为:

例如,如果某人需要 4 码,但有 5 码,则不会向他们显示 5 码。他们可能仍然会使用 5,即使它的 1 尺寸太多了。当然,如果你想要它严格 === 那么只需将 >= 替换为 ===

let campgrounds = [
{ number: 1, view: 'ocean', partySize: 8, isReserved: false },
{ number: 5, view: 'ocean', partySize: 4, isReserved: false },
{ number: 12, view: 'ocean', partySize: 4, isReserved: true },
{ number: 18, view: 'forest', partySize: 4, isReserved: false },
{ number: 23, view: 'forest', partySize: 4, isReserved: true }
]

function getCamp(campgrounds, view, size) {
return campgrounds.filter(ground => !ground.isReserved && view === ground.view && ground.partySize >= size)
}

console.log(getCamp(campgrounds, "ocean", 4));

关于javascript - 如何获取对象的总数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63371789/

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