簡體   English   中英

過濾object的Vuex state數組返回空數組

[英]Filter Vuex state array of object returns empty array

我有 state 接收來自https://jsonplaceholder.typicode.com/todos/的數據。 我想根據狀態completed:truecompleted:false過濾數據。

我有以下方法來過濾過濾器數組:

 filterByStatus(status) { const filteredResults = this.allTodos.filter(todo => todo.completed == status) console.log(filteredResults) }

在這里,我收到truefalse作為該方法的參數。 但是console.log(filteredResults)返回一個空數組。

 filterByStatus(status) { let filteredResults = []; this.allTodos.map(item => { if (item.completed == status) { filteredResults.push(item); } }); console.log(filteredResults); }

我也嘗試過 map 方法,但結果是相同的空數組。

我有console.log(this.allTodos)結果是:

 [{…}, {…}, {…}, {…}, {…}, __ob__: Observer]

這是觀察者的原因嗎??

我不認為你應該在這里使用 map:

        this.allTodos.map(item => {
          if (item.completed == status) {
             filteredResults.push(item);
          }
        });

而是一個 forEach

        this.allTodos.forEach(item => {
          if (item.completed == status) {
             filteredResults.push(item);
          }
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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