簡體   English   中英

用 Javascript 過濾 JSON

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM