【问题标题】:How to convert multiple objects to a single array and count the length of the objects in javascript?如何将多个对象转换为单个数组并计算javascript中对象的长度?
【发布时间】:2021-01-17 07:58:30
【问题描述】:

我有这个代码:

               {bloodStores &&
                  bloodStores.map((store) => {
                    if (
                      store.status === "Stock" &&
                      store.blood_component === "Whole Blood" &&
                      store.blood_group === "O+"
                    ) {
                      {
                       {' display the length of objects '}
                      }
                    }
                  })}

bloodStores 是一个包含太多数据的数组。 我循环并通过获取我想要的特定内容作为上述代码进行过滤。

过滤后,我得到了我需要的确切东西,都是像下面的代码这样的对象:

 {
    "donor": "caamir yusuf ali",
    "hb": "18.13",
    "blood_group": "O+",
    "blood_component": "Whole Blood",
    "unit": "500",
    "bag": "K020068931",
    "status": "Stock"
  },
  {
    "donor": "zakariye mohamed adan",
    "hb": "16.71",
    "blood_group": "O+",
    "blood_component": "Whole Blood",
    "unit": "500",
    "bag": "K02059689",
    "status": "Stock"
  },
  {
    "donor": "cabdirashid colaad hassan",
    "hb": "17.55",
    "blood_group": "O+",
    "blood_component": "Whole Blood",
    "unit": "250",
    "bag": "EE559895",
    "status": "Stock"
  }

如您所见,对象总数为 3,但我如何显示该数字????

【问题讨论】:

  • 它是一个对象数组,你可以通过简单的.length得到长度

标签: javascript node.js arrays reactjs object


【解决方案1】:

您应该首先使用filter 方法获取包含您感兴趣的对象的新数组,然后使用数组的length 属性。

\\ before you return from your component, filter out the array
const filteredBloodStores = bloodStores.filter(store => (store.status === "Stock" 
    && store.blood_component === "Whole Blood" 
    && store.blood_group === "O+"));

\\ and in your render, you can get length of that array
filteredBloodStores.length

【讨论】:

  • 我在渲染区域使用它。谢谢,解决了我的问题
【解决方案2】:

您应该事先进行过滤,然后您可以简单地呈现过滤后的项目或结果数组的长度。在 jsx 中不需要这样做:

const availableZeroPositiveWholeBlood = bloodStores.filter(
    ({status, blood_component, blood_group}) => (
        status === "Stock" 
        && blood_component === "Whole Blood" 
        && blood_group === "O+"
    )
)

return <p>{availableZeroPositiveWholeBlood.length}</p>;

【讨论】:

  • 谢谢。这个答案也是正确的,解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 2016-10-10
  • 2022-01-15
  • 1970-01-01
  • 2020-06-17
  • 2019-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多