我有一个看起来像这样的数据(经过消毒)。这是从Azure人工制品馈送到响应数组的axios输出
{
"value": [
{
"normalizedName": "@test",
"name": "@test",
"versions": [
{
"normalizedVersion": "1.2.6",
"version": "1.2.6",
}
],
},
{
"normalizedName": "@test2",
"name": "@test2",
"versions": [
{
"normalizedVersion": "4.0.1",
"version": "4.0.1",
}
],
},
{
"normalizedName": "@test3",
"name": "@test3",
"versions": [
{
"normalizedVersion": "2.2.0",
"version": "2.2.0",
}
],
},
]
}
字符串
我需要得到每个项目的normalizedName
和normalizedVersion
eg
[ '@test','1.2.6' ]
[ '@test2','4.0.1' ]
[ '@test3','2.2.0' ]
型
等
我试过这个方法,但不明白如何从项目0到项目1等等。我不确定是否需要创建一个循环计数器,并把它们都放进一个循环,但似乎混乱。
for (var key in response.data.value[0]) {
if (key === 'normalizedName') {
// console.log(response.data.value[0][key]);
verList.push(response.data.value[0][key]);
}
}
for (var key in response.data.value[0].versions[0]) {
if (key === 'normalizedVersion') {
// console.log(response.data.value[0].versions[0][key]);
verList.push(response.data.value[0].versions[0][key]);
}
}
型
我的输出是这样的:
[ '@test', '1.2.6' ]
型
我已经尝试了其他方法,得到了相同的结果,但只是不能让它通过完整的JSON对象/主体,并拉出所有的版本。
感谢任何帮助。
2条答案
按热度按时间sbtkgmzw1#
这段JavaScript代码定义了一个对象
res
,该对象具有名为“value”的属性,该属性是一个对象数组。数组中的每个对象都表示一个包,该包具有“normalizedName”、“name”和“versions”等属性。“versions”属性是一个数组,其中包含一个具有版本信息的对象。然后,代码使用
console.log
输出一个数组数组。每个内部数组包含从“value”数组中的每个对象提取的软件包名称(value.name)
和相应的版本(value.versions[0].version)
。这是通过使用map函数遍历数组并为每个软件包创建指定值的新数组来实现的。字符串
n3schb8v2#
您可以使用
reduce
和map
来获得所需的结果:字符串