[英]Filtering a JSON with Javascript
我正在嘗試使用過濾器過濾 JSON 並且我沒有讓 clubProducts 像我希望的那樣返回(allProducts 工作正常)。 任何幫助表示贊賞。 謝謝
const state = {
added: [],
all: [
{
id: 'bcd755a6-9a19-94e1-0a5d-426c0303454f',
name: 'Iced Coffee',
description: 'Coffee, now featuring ice.',
image: 'https://images.com',
price: 899,
fxCategory: 'Coffee'
},
{
id: 'cc919e21-9a19-94e1-ace9-426c0303454f',
name: 'The 2ndItem',
description: 'Wouldn't you like to know.',
image: 'https://images.com',
price: 499,
fxCategory: 'Club'
}
]
}
const getters = {
allProducts: state => state.all,
clubProducts: state => function () {
return state.all.filter(item => item.fxCategory == 'Club')
}
}
編輯:根據建議更新最新嘗試
您犯了兩個錯誤:您只能在數組上使用filter()
(即state.all
在您的情況下),並且在您的比較中您沒有引用字符串“Club”。
此外,您的filter()
可以用更短的方式編寫,例如:
clubProducts: state.all.filter(item => item.fxCategory == 'Club')
有關更多信息,請參閱文檔。
正如@Reydy 提到的,您可以直接在“clubProducts”字段中調用過濾器 function,這個例子是有效的。
但是您可能會收到錯誤,因為您在“描述”字段中使用了單引號。
試試 state.all
description: "Wouldn't you like to know.",
代替
description: 'Wouldn't you like to know.',
這是我在嘗試重復您的示例時遇到錯誤的唯一地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.