Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在取消JS中对象数组的测试_Javascript_Arrays_Unnest - Fatal编程技术网

Javascript 正在取消JS中对象数组的测试

Javascript 正在取消JS中对象数组的测试,javascript,arrays,unnest,Javascript,Arrays,Unnest,嵌套数组 [ { "id": 16, "created_at": "2020-07-01T14:09:14.066Z", "file": { "name": "Annotation 2020-04-08 135240.jpg" }

嵌套数组

[
        {
            "id": 16,
            "created_at": "2020-07-01T14:09:14.066Z",
            "file": {
                "name": "Annotation 2020-04-08 135240.jpg"
            }
        },
        {
            "id": 15,
            "created_at": "2020-07-01T14:08:31.558Z",
            "file": {
                "name": "Annotation 2020-04-08 135240.jpg"
            }
        },
        {
            "id": 14,
            "created_at": "2020-07-01T14:07:32.869Z",
            "file": {
                "name": "Annotation 2020-04-08 135240.jpg"
            }
        }]
我想要达到的目标

[
        {
            "id": 16,
            "created_at": "2020-07-01T14:09:14.066Z",
            "name": "Annotation 2020-04-08 135240.jpg"           
        },
        {
            "id": 15,
            "created_at": "2020-07-01T14:08:31.558Z",
            "name": "Annotation 2020-04-08 135240.jpg"
        },
        {
            "id": 14,
            "created_at": "2020-07-01T14:07:32.869Z",
            "name": "Annotation 2020-04-08 135240.jpg"
        }]

您可以轻松地将
file.name
属性映射到它的父属性,然后在完成后
删除d.file

基本示例:

const数据=[{
“id”:16,
“创建时间”:“2020-07-01T14:09:14.066Z”,
“文件”:{
“名称”:“注释2020-04-08 135240.jpg”
}
},
{
“id”:15,
“创建时间”:“2020-07-01T14:08:31.558Z”,
“文件”:{
“名称”:“注释2020-04-08 135240.jpg”
}
},
{
“id”:14,
“创建时间”:“2020-07-01T14:07:32.869Z”,
“文件”:{
“名称”:“注释2020-04-08 135240.jpg”
}
}
];
//[选项1]映射并返回新对象
const targetData=data.map(d=>({id:d.id,created_at:d.created_at,name:d.file.name}));
//[选项2]创建新属性并删除旧属性
const targetData2=data.map(d=>{
d、 name=d.file.name;
删除文件;
返回d;
});
console.log(targetData);

console.log(targetData2)这里您可以使用
map
功能

这将创建新阵列。可以为关键点指定值

这不会删除原始阵列

const arr=[{
“id”:16,
“创建时间”:“2020-07-01T14:09:14.066Z”,
“文件”:{
“名称”:“注释2020-04-08 135240.jpg”
}
},
{
“id”:15,
“创建时间”:“2020-07-01T14:08:31.558Z”,
“文件”:{
“名称”:“注释2020-04-08 135240.jpg”
}
},
{
“id”:14,
“创建时间”:“2020-07-01T14:07:32.869Z”,
“文件”:{
“名称”:“注释2020-04-08 135240.jpg”
}
}
]
var newArr=arr.map(函数(elem){
返回{
id:elem.id,
创建时间:elem.created\u at,
名称:elem.file.name
}
});
控制台日志(newArr)
输出
{file:name}
属性,并用于将其余属性放入对象
o

使用运算符将对象
o
与属性名
name
合并。使用

复制所有对象。不修改数据中的原始对象

数据=[{
“id”:16,
“创建时间”:“2020-07-01T14:09:14.066Z”,
“文件”:{
“名称”:“注释2020-04-08 135240.jpg”
}
},
{
“id”:15,
“创建时间”:“2020-07-01T14:08:31.558Z”,
“文件”:{
“名称”:“注释2020-04-08 135240.jpg”
}
},
{
“id”:14,
“创建时间”:“2020-07-01T14:07:32.869Z”,
“文件”:{
“名称”:“注释2020-04-08 135240.jpg”
}
}
];
data=data.map({file:{name},{o})=>({……o,name}))

控制台日志(数据)
data=data.map({file:{name},{o})=>({……o,name}))
这能回答您的问题吗?最好使用解构并获取所需的属性,而不是删除它们