如何使用过滤器在react js中读取JSON数组中的项?

如何使用过滤器在react js中读取JSON数组中的项?,json,reactjs,filter,Json,Reactjs,Filter,我有以下json。从下面的json中,我只需要数组形式的每个项目的PartNumber。任何人都可以帮助如何使用过滤器吗 下面是我的代码。在控制台日志中,我只获取第一项的零件号 state = { data: MYResult.Products || [], partNumbers: [] }; componentDidMount(){ const allPartNumbers = this.state.data.filter(

我有以下json。从下面的json中,我只需要数组形式的每个项目的PartNumber。任何人都可以帮助如何使用过滤器吗

下面是我的代码。在控制台日志中,我只获取第一项的零件号

    state = {
        data: MYResult.Products || [],
        partNumbers: []
    };

   componentDidMount(){
      const allPartNumbers = this.state.data.filter(partnumbers =>  
      this.state.data.PartNumber);
      console.log(allPartNumbers)
   }

"Products": [
            {
            "PartNumber": "ALM-GN001",
            "ProductName": "GNSS Filter-LNA Front-End Module",
            "productline": "GPS/GNSS Wireless Amplifiers",
            "AV_47_Frequency_GHz": "1.575",
            "AV_47_NF": ""
            },
            {
            "PartNumber": "ALM-GP001",
            "ProductName": "GPS Filter-LNA-Filter Front-End Module",
            "productline": "GPS/GNSS Wireless Amplifiers",
            "AV_47_Frequency_GHz":"1.565 - 1.606",
            "AV_47_NF": ""
            },
            { 
            "PartNumber": "ALM-GA001",
            "ProductName": "High-Gain, Low-Current LNA with Variable Current and Shutdown Function",
            "productline": "GPS/GNSS Wireless Amplifiers",
            "AV_47_Frequency_GHz": "1.606",
            "AV_47_NF": "0.97"
            },
            {
            "PartNumber": "ALM-GN002",
            "ProductName": "GNSS LNA-Filter Front-End Module with Optional Differential Outputs",
            "productline": "GPS/GNSS Wireless Amplifiers",
            "AV_47_Frequency_GHz": "1.565",
            "AV_47_NF": "0.97"
            }
        ]

filter
将创建一个新数组,其中包含从函数返回真实值的所有元素。您想改用
map
,只需取出
PartNumber
属性即可

示例

const产品=[
{
零件号:“ALM-GN001”,
产品名称:“GNSS过滤器LNA前端模块”,
产品线:“GPS/GNSS无线放大器”,
AV_47_频率_GHz:“1.575”,
AV_47_NF:“
},
{
零件号:“ALM-GP001”,
产品名称:“GPS过滤器LNA过滤器前端模块”,
产品线:“GPS/GNSS无线放大器”,
AV_47_频率_GHz:“1.565-1.606”,
AV_47_NF:“
},
{
零件号:“ALM-GA001”,
产品名称:
“具有可变电流和关闭功能的高增益、低电流LNA”,
产品线:“GPS/GNSS无线放大器”,
AV_47_频率_GHz:“1.606”,
AV_47_NF:“0.97”
},
{
零件号:“ALM-GN002”,
产品名称:
“具有可选差分输出的GNSS LNA滤波器前端模块”,
产品线:“GPS/GNSS无线放大器”,
AV_47_频率_GHz:“1.565”,
AV_47_NF:“0.97”
}
];
const result=products.map(product=>product.PartNumber);

控制台日志(结果)这不是筛选操作。只需使用
map
而不是
filter
。(将筛选器替换为map)

数组。filter()
用于使用满足
筛选器(()=>条件)
方法上回调函数中给出的条件的元素创建新数组

您可以按如下方式使用reduce:

const productsNumbers = products.reduce((accum, product) => {
  accum.push(product.PartNumber);
  return accum;
}, []);
在这种情况下,
productsNumbers[]
将具有如下内容: `productsNumbers=[]