遍历json对象改变结构?
let indexData = [
{
index: "A",
name: "阿依莫"
},
{
index: "A",
name: "阿凡达"
},
{
index: "C",
name: "曹操"
},
{
index: "C",
name: "曹海军"
},
{
index: "C",
name: "陈晨"
},
{
name: "没有index"
},
{
index: "啊",
name: "index不是字母"
}
]
数据量有点大,请问该如何遍历得到如下格式又节省性能:
[
{
index: "A",
datas: [
{
index: "A",
name: "阿依莫"
},
{
index: "A",
name: "阿凡达"
}
]
},
{
index: "C",
datas: [
{
index: "C",
name: "曹操"
},
{
index: "C",
name: "曹海军"
},
{
index: "C",
name: "陈晨"
}
]
},
{
index: "#",
datas: [
{
name: "没有index"
},
{
index: "啊",
name: "index不是字母"
}
]
}
]
回复
1个回答

test
2024-07-10
let indexData = [
{
index: "A",
name: "阿依莫"
},
{
index: "A",
name: "阿凡达"
},
{
index: "C",
name: "曹操"
},
{
index: "C",
name: "曹海军"
},
{
index: "C",
name: "陈晨"
},
{
name: "没有index"
},
{
index: "啊",
name: "index不是字母"
}
]
function isLetters( str ){
var re=/^[A-Za-z]+$/;
if (str.match(re) == null)
return false;
else
return true;
}
const groupByCategory = indexData.reduce((group, product) => {
let { index } = product;
if(!index || !isLetters(index)){
index='#'
}
group[index] = group[index] ?? [];
group[index].push(product);
return group;
}, {});
console.log(groupByCategory);
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容