javascript - 如何将数组对象格式化为新对象
问题描述
我正在尝试使用 javascript 将包含数组的对象转换为另一个对象。下面是对象字段的示例以及格式化后的示例。格式化后的数据必须只显示funcName中带有“ABS”的文件
let beforeData = {
SUMMER: [
{ funcName: '{{WORKING_ABS}}', subject: { en: "Exercice1"} },
{ funcName: '{{PULLS_BODY}}', subject: { en: "Exercice2"} },
],
WINTER: [
{ funcName: '{{FULL_BODY}}', subject: { en: "Exercice3"} },
{ funcName: '{{REST_ABS}}', subject: { en: "Exercice4"} },
]
};
我需要对象与这个完全一样
let AfterData ={
worklinks: [
{
name: 'Exercice1',
link: '{{WORKING_ABS}}',
},
{
name: 'Exercice4',
link: '{{REST_ABS}}',
},
]
},
我试图制作一个像这样的方法(它只是一个草稿),也许有人会帮助改进这个方法
export const functTransform = (dataaas) => { Object.keys(dataaas).map(fiels => ({
worklinks =>funcName.search("ABS") > -1).map(({funcName, subject}) => ({
link: funcName,
name: subject.en
}))};
我是使用 javascript 的新手,因此非常感谢任何帮助,谢谢。
解决方案
你可以这样吗?(用 forEach 减少)
let beforeData = {
SUMMER: [
{ funcName: '{{WORKING_ABS}}', subject: { en: "Exercice1"} },
{ funcName: '{{PULLS_BODY}}', subject: { en: "Exercice2"} },
],
WINTER: [
{ funcName: '{{FULL_BODY}}', subject: { en: "Exercice3"} },
{ funcName: '{{REST_ABS}}', subject: { en: "Exercice4"} },
]
};
function transform(inputData, funcComparator){
if (funcComparator == undefined){
funcComparator = (item) => item.funcName.includes("ABS");
}
return Object.values(inputData).reduce((aggArr, arr) => {
arr.forEach(item => {
if (funcComparator(item)){
const itemCopy = {name: item.subject.en, link: item.funcName};
aggArr.push(itemCopy);
}
})
return aggArr;
}, []);
}
//use it to find all your "ABS":
console.log(transform(beforeData));
//another example, use it to find all your "BODY":
//console.log(transform(beforeData, (item) => item.funcName.includes("BODY")));
输出:
[
{
"name": "Exercice1",
"link": "{{WORKING_ABS}}"
},
{
"name": "Exercice4",
"link": "{{REST_ABS}}"
}
]
推荐阅读
- sql - 缓冲池中没有可用的可用缓冲区
- c# - "".All(char.IsNumber) 返回 True
- html - 尽管验证服务给了我 100%,但 CSS Grid 无法正常运行?
- angular - Angular HTTP post调用“无法在'XMLHttpRequest'上执行'open':无效的URL”
- h.264 - 通过 live555 流式传输视频时,将编码器分辨率更改 1 或 2 个像素,解码器在刷新之前不会更改分辨率
- c - 从输入文件中读取输入,不断进入无限循环
- devise - AWS 弹性负载均衡器不适用于 rails devise gem。获取无效的真实性令牌错误
- wolfram-mathematica - 如何在自定义域上使用 Resolve
- python - Amazon EC2 微型实例不响应“which python”命令
- javascript - 如何将搜索栏添加到下拉列表?