我有下面的json。从下面的json中,我只想以数组的形式获得每个项的PartNumber。有谁能帮忙如何使用过滤器这样做呢?
下面是我的密码。在控制台日志中,只获取第一项的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"
}
]发布于 2019-02-18 10:19:08
filter将创建一个新数组,其中包含从函数返回一个真实值的所有元素。您希望使用map代替,只需提取PartNumber属性即可。
示例
const 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"
}
];
const result = products.map(product => product.PartNumber);
console.log(result);
发布于 2019-02-18 10:20:45
这不是过滤器操作。只需使用map而不是filter。(用map替换过滤器)
发布于 2019-02-18 10:34:38
Array.filter()用于创建一个具有元素/s的新数组,该元素/s满足filter(() => condition)方法上回调函数中的条件。
您可以按以下方式使用reduce:
const productsNumbers = products.reduce((accum, product) => {
accum.push(product.PartNumber);
return accum;
}, []);在这种情况下,productsNumbers[]应该是这样的:“`productsNumbers = []
https://stackoverflow.com/questions/54744908
复制相似问题