Javascript 如何根据数组遍历数据?
我正在尝试根据show数组遍历数据,并打印数据以查看其是否正确。遍历与show数组对应的列表数组,如下所示 我希望效果如下: 常数数据=[{ 代码:200,, msg:成功, 数据:{ 名单:[{ 姓名:A,, 年龄:10岁, 徽标:aa.png, 注:aa }, { 姓名:B,, 年龄:20,, 徽标:bb.png, 注:bb }], 展示:[ 名称 年龄 ] } }] 函数初始化{ data.mapres=>{ 如果res.code==200{ console.logres.data.list } } }Javascript 如何根据数组遍历数据?,javascript,Javascript,我正在尝试根据show数组遍历数据,并打印数据以查看其是否正确。遍历与show数组对应的列表数组,如下所示 我希望效果如下: 常数数据=[{ 代码:200,, msg:成功, 数据:{ 名单:[{ 姓名:A,, 年龄:10岁, 徽标:aa.png, 注:aa }, { 姓名:B,, 年龄:20,, 徽标:bb.png, 注:bb }], 展示:[ 名称 年龄 ] } }] 函数初始化{ data.mapres=>{ 如果res.code==200{ console.logres.data.li
初始化 如果您只想将姓名和年龄显示为
[
{
"name": "A",
"age": "10",
},
{
"name": "B",
"age": "20",
}
]
可以使用Array.map
然后你可以这样写你的代码
常数数据=[
{
代码:'200',
msg:'成功',
数据:{
名单:[
{
名称:‘A’,
年龄:"10",,
徽标:“aa.png”,
注:“aa”
},
{
名称:‘B’,
年龄:'20',,
徽标:“bb.png”,
注:“bb”
}
],
显示:[“姓名”、“年龄”]
}
}
]
函数初始化{
data.mapres=>{
如果res.code==200{
console.log
res.data.list.mapitem=>{
返回{
名称:item.name,
年龄:item.age
}
}
}
}
}
init通过迭代show而不是硬编码name和age,如果您更改模板的结构,此代码也可以工作:
常数数据=[{
代码:200,,
msg:成功,
数据:{
名单:[{
姓名:A,,
年龄:10岁,
徽标:aa.png,
注:aa
}, {
姓名:B,,
年龄:20,,
徽标:bb.png,
注:bb
}],
展示:[
名称
年龄
]
}
}];
var ans=data[0]。data.list.mapitem=>{
var curr={};
数据[0]。data.show.forEachprop=>{
当前[道具]=项目[道具];
};
返回货币;
};
洛根
常数数据=[{
代码:200,,
msg:成功,
数据:{
名单:[{
姓名:A,,
年龄:10岁,
徽标:aa.png,
注:aa
}, {
姓名:B,,
年龄:20,,
徽标:bb.png,
注:bb
}],
展示:[
名称
年龄
]
}
}];
函数初始化{
data.mapres=>{
如果res.code==200{
console.logres.data.list.mapfunctionlistValue{
var ret={};
res.data.show.forEachfunctionidx{
ret[idx]=listValue[idx]
};
返回ret;
};
}
}
}
初始化 可以对数据使用.map,如果代码不是200,则返回false;如果代码不是200,则返回列表数组的映射版本。可以将此数组映射到列表中每个对象的子集。子集由show数组定义,因此您可以在此数组上使用.reduce来构建映射对象
见下例:
常数数据=[{
代码:200,,
msg:成功,
数据:{
名单:[{
姓名:A,,
年龄:10岁,
徽标:aa.png,
注:aa
}, {
姓名:B,,
年龄:20,,
徽标:bb.png,
注:bb
}],
展示:[
名称
年龄
]
}
}];
函数初始化{
return data.mapres=>{
如果res.code==200{
return res.data.list.mapobj=>{
返回res.data.show.reduceacc,prop=>{…acc[prop]:obj[prop]},{};
};
}
返回false;
}.filterBoolean;//过滤掉所有'false'返回
}
console.loginit 您可以以更短的方式使用reduce:
常数数据=[
{
代码:200,,
msg:成功,
数据:{
名单:[
{
姓名:A,,
年龄:10岁,
徽标:aa.png,
注:aa
},
{
姓名:B,,
年龄:20,,
徽标:bb.png,
注:bb
}
],
show:[姓名、年龄]
}
}
];
console.logdata[0].data.list.mapx=>
数据[0]。data.show.reducep,c=>p[c]=x[c],p,{}
;到目前为止,您尝试了什么?forvar i=0;I打印结果是正确的,但是您能否根据show:['name','age']打印结果?如果show:[name,age,logo],则您的解决方案将不起作用。另外请注意,此解决方案假定数据数组中有一个元素。如果没有元素,则会导致错误。如果有多个元素,则只使用第一个元素。@3limin4t0r谢谢,我已将嵌套循环中的映射转换为forEach“reduce”!
[
{
"name": "A",
"age": "10",
},
{
"name": "B",
"age": "20",
}
]