我正在尝试映射对象数组以获得以下结构:
[
{
media:'Wall Street Journal',
informational: 101,
negative, 296,
balanced: length of the array,
positive: length of the array
}
]
以下是我要映射的67个数组之一的示例:
[
"Wall Street Journal",
{
"Informational": Array(101),
"Negative": Array(296),
"Balanced": [
{
"correspondent_1": "Anthony Richard Harrup",
"correspondent_2": "False",
"date": "1-January-2016",
"date_object": "2016-01-01",
"day_number": 1,
"front_page": "False"
},
{
"correspondent_1": "Anthony Richard Harrup",
"correspondent_2": "False",
"date": "1-January-2016",
"date_object": "2016-01-01",
"day_number": 1,
"front_page": "False"
}
],
"Positive": [
{
"correspondent_1": "Anthony Richard Harrup",
"correspondent_2": "False",
"date": "1-January-2016",
"date_object": "2016-01-01",
"day_number": 1,
"front_page": "False"
},
{
"correspondent_1": "Anthony Richard Harrup",
"correspondent_2": "False",
"date": "1-January-2016",
"date_object": "2016-01-01",
"day_number": 1,
"front_page": "False"
}
]
}
]
我故意留下了阵列信息,因为这是我从控制台获得的结果。我写了两个例子,说明当您单击控制台中的箭头时数组的外观,甚至还给了length属性。当我尝试映射该数组以获取前面提到的结构时,它使我回想起它无法读取undefined的属性长度,但似乎存在。我什至在项目的另一部分尝试了相同的代码,并且在那里工作了。
这是我的地图功能:
const data = mediaValues.map(function(media) {
return {
media: media[0],
positive: media[1].Positive.length,
negative: media[1].Negative.length,
balanced: media[1].Balanced.length,
informational: media[1].Informational.length,
};
});
console.log(data);
如果我只使用媒体,它会给我报章的名字;如果我使用媒体[1]。它会给我返回所有对象的信息,所有其他类别的信息都一样,但是当我尝试访问长度功能不起作用。我只想获取数组中每个类别的条目总数。
非常感谢您的帮助!
答案 0 :(得分:0)
我认为您应该像这样检查循环中的媒体索引
const data = mediaValues.map(function(media,index) {
if(index==1){
return {
positive: media.Positive.length,
negative: media.Negative.length,
balanced: media.Balanced.length,
informational: media.Informational.length, };
}else{
return {
mediia:media
}
}
});
console.log(data);