【发布时间】:2023-01-26 21:28:11
【问题描述】:
我有一个数组如下:
data = [
{
"attributes": {
"Name":"Material",
"Code":"ABC",
"Name":"Russia"
},
"AttributeList":{
"Attribute":[
{
"attributes":{
"AttributeName":"id",
"AttributeValue":"PROD"
}
},
{
"attributes":{
"AttributeName":"commodity",
"AttributeValue":"Rice"
}
},
{
"attributes":{
"AttributeName":"unit",
"AttributeValue":"1"
}
}
]
}
},
{
"attributes": {
"Name":"Material",
"Code":"CDF",
"Name":"INDIA"
},
"AttributeList":{
"Attribute":[
{
"attributes":{
"AttributeName":"id",
"AttributeValue":"PROD"
}
},
{
"attributes":{
"AttributeName":"commodity",
"AttributeValue":"Barley"
}
},
{
"attributes":{
"AttributeName":"unit",
"AttributeValue":"2"
}
}
]
}
},
{
"attributes": {
"Name":"Material",
"Code":"DEF",
"Name":"UK"
},
"AttributeList":{
"Attribute":[
{
"attributes":{
"AttributeName":"id",
"AttributeValue":"PC"
}
},
{
"attributes":{
"AttributeName":"commodity",
"AttributeValue":"PulSe"
}
},
{
"attributes":{
"AttributeName":"unit",
"AttributeValue":"3"
}
}
]
}
}
]
如果“AttributeName”是“id”并且 AttributeValue 是“PROD”并且“AttributeName”是“commodity”并且 AttributeValue 是“Rice”或“Barley”,那么我必须从这个数组中得到一个数组。那么我的最终数组将如下所示:
finalArray = [
{
"code":"ABC",
"description":"Russia",
"unit":1
},
{
"code":"CDF",
"description":"INDIA",
"unit":2
}
]
代码值将是“代码”的值,描述将是“名称”,单位值将来自以属性名称作为单位的 AttributeList。这该怎么做?
【问题讨论】:
-
array.reduce() 函数是你的朋友
-
请添加给定数据的结果。和代码,你试过了。
-
@YosiLeibman 为什么要使用数组 reduce?我认为 array map 是你的朋友 :)
标签: javascript arrays