如何获取过滤的对象长度

时间:2017-03-30 03:42:12

标签: reactjs

我试图表明当过滤对象的大小为零时,没有数据显示。调用filter方法后有没有办法检查它的大小?

this.state.items
.filter(item => {
    // filter code
})
.map(item => {
    // display data
})

例如,this.state.items有10个项目,在通过filter方法后变为零。我想在此时显示消息。

2 个答案:

答案 0 :(得分:0)

首先将过滤后的数据存储在变量中:

let filteredData = this.state.items
                         .filter(item => {
                              // filter code
                          });

现在filteredData将包含已过滤的数据,现在您可以检查此变量的长度并return'找不到数据'如果length = 0,请使用ternary operator

return filteredData.length ? 

               filteredData.map(item => {
                    // display data
               })

               :

               <div>No data found </div>;

或者您也可以使用if-else条件:

if(filteredData.length)
      filteredData.map(item => {
         // display data
      })
else
   <div>No data found </div>

答案 1 :(得分:0)

const filteredData = this.state.items((items) => //filter code);
return filteredData.count()
   ? filteredData.map(item => //data);
   : <div>No Data found </div>

尝试使用不可变对象。