我是 JavaScript 的新手,我被卡住了。 我在下面有一组对象
const items = [
{
"product": "apple",
"quantity": 3
},
{
"product": "orange",
"quantity": 1
},
{
"product": "mango",
"quantity": 0.6
},
{
"product": "pineapple",
"quantity": 52
},
{
"product": "banana",
"quantity": 23
},
{
"product": "avocado",
"quantity": 14
}
]
我正在尝试将这些显示在桌子上,并希望根据产品获取每一行的数量,因此,例如,如果它是香蕉的一行,我得到 23.
到目前为止我尝试的是
function specs(gizmo){
var found = items.filter(obj => obj.product === gizmo);
return found[0]?.quantity
}
console.log(specs('banana'));
如果我对数组进行硬编码,但当我从我的后端 Firestore 中提取它时,这会起作用。我得到错误:
Cannot read properties of undefined (reading '0')
我已经尝试添加后备,但仍然无法正常工作。
array.find
。请注意,您仍然需要使用可选链接,因为返回值可能未定义。
正如其他人已经提到的,请改用
find()
。
您还可以创建一个自定义函数,循环遍历数组并搜索项目。我在下面做了一个例子。
function specs(itemToFind) {
for(const item of items) {
if(item.product === itemToFind) {
return item;
}
}
return null; // return something if item was not found.
}
console.log(specs("banana"));