Javascript 将大型JSON对象的值提取到另一个对象中

Javascript 将大型JSON对象的值提取到另一个对象中,javascript,Javascript,我有下面的对象,我想通过它,将特定的键提取到另一个对象中。我已经尝试了下面的代码,但是我只是没有定义所有的值 { "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -89.535,

我有下面的对象,我想通过它,将特定的键提取到另一个对象中。我已经尝试了下面的代码,但是我只是没有定义所有的值

{
"type": "FeatureCollection",
"features": [
    {
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [
                -89.535,
                34.3654
            ]
        },
        "place_name": "University, Mississippi, United States",
        "properties": {
            "title": "Using Adversarial Autoencoders for Multi-Modal Automatic Playlist Continuation",
            "countries": "Germany",
            "authorTitle": "Florian Mai"
        }
    },
    {
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [
                10.14,
                54.33
            ]
        },
        "place_name": "24105, Kiel, Schleswig-Holstein, Germany",
        "properties": {
            "title": "Using Adversarial Autoencoders for Multi-Modal Automatic Playlist Continuation",
            "countries": "Germany",
            "authorTitle": "Iacopo Vagliano"
        }
    },
    {
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [
                -89.535,
                34.3654
            ]
        },
        "place_name": "University, Mississippi, United States",
        "properties": {
            "title": "Using Adversarial Autoencoders for Multi-Modal Automatic Playlist Continuation",
            "countries": "Germany",
            "authorTitle": "Lukas Galke"
        }
    },
    {
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [
                -1.898631,
                50.744119
            ]
        },
        "place_name": "University Roundabout, Bournemouth, Bournemouth, BH12 5EQ, United Kingdom",
        "properties": {
            "title": "An update on the 2014 report: \"Review of Recirculation Aquaculture System Technologies and their Commercial Application\"",
            "countries": "United Kingdom",
            "authorTitle": "David Fletcher"
        }
    },
    {
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [
                -2.89,
                43.29
            ]
        },
        "place_name": "48160, Derio, Bizkaia, Spain",
        "properties": {
            "title": "An update on the 2014 report: \"Review of Recirculation Aquaculture System Technologies and their Commercial Application\"",
            "countries": "Spain",
            "authorTitle": "Maddi Badiola"
        }
    }
]
}
我想遍历它并提取标题和authortle,然后将每个标题和authortle添加到一个新的对象条目中

我试过的

extractedValues1 = business1.features.map(({ authorTitle, title }) => ({ authorTitle, title }));




  testObject = {
    object: extractedValues1
  }
我想要达到的目标

testObject = {

    0:{
      authorTitle:'Florian Mai',
     title:'Using Adversarial Autoencoders for Multi-Modal Automatic Playlist Continuation'
     }
     1:{
       authorTitle:'Iacopo Vagliano'
       Title:'Using Adversarial Autoencoders for Multi-Modal Automatic Playlist Continuation'
      }
etc

您可以使用函数
reduce
和处理程序中的第三个参数,即当前索引

为了将索引指定为属性名,可以使用名为
computed property name
的功能

extractedValues1 = business1.features.reduce((a, { authorTitle, title }, i) => 
        Object.assign(a, {[i]: { authorTitle, title }}), Object.create(null));
var obj={“type”:“FeatureCollection”,“features”:[{“type”:“Feature”,“geometry”:{“type”:“Point”,“coordinates”:[-89.535,34.3654]},“place_name”:“美国密西西比大学”,“properties”:{“title”:“使用对抗式自动编码器进行多模式自动播放列表继续”,“国家:”“德国”,“作者:”“Florian Mai”},{“类型:”“特征”,“几何:{“类型:”“点”,“坐标:”[10.14,54.33]},“地名:”24105,德国石勒苏益格-荷尔斯泰因州基尔,“属性”:{“标题”:“使用对抗式自动编码器进行多模式自动播放列表继续”,“国家”:“德国”,“作者”:“Iacopo Vagliano”},{“类型”:“特征”,“几何”:{“类型”:“点”,“坐标”:[-89.535,34.3654],“地名”:“美国密西西比大学”,“财产”:{“标题”:“使用对抗式自动编码器进行多模式自动播放列表继续”,“国家”:“德国”,“作者”:“卢卡斯·高尔克”},{“类型”:“特征”,“几何体”“:{”类型“:”点“,”坐标“:[-1.898631,50.744119],”地名“:”大学环岛,伯恩茅斯,伯恩茅斯,BH12 5EQ,英国“,”物业“:{”标题“:”2014年报告更新:\”循环水产养殖系统技术及其商业应用综述\“”,“国家”:“联合王国”,“作者”:“David Fletcher”},{“类型”:“特征”,“几何”:{“类型”:“点”,“坐标”:[-2.89,43.29]},“地名”:“48160,Derio,Bizkaia,西班牙”,“财产”:{“标题”:“2014年报告的更新:\“循环水产养殖系统技术及其商业应用的审查”,“国家”:“西班牙”,“作者”:“Maddi Badiola”}
让extractedValues1=obj.features.reduce((a,{properties:{authorTitle,title},i)=>
assign(a,{[i]:{authorTitle:authorTitle,title}}),Object.create(null));
console.log(提取值1);

。作为控制台包装{max height:100%!important;top:0;}
您要查找的属性(
authorTitle
title
)位于父对象的
属性
属性内,因此您必须通过
属性

const arr = features.map(
  ({ properties: { authorTitle, title }}) => ({ authorTitle, title })
);
const output = { ...arr };
const功能=[{
“类型”:“功能”,
“几何学”:{
“类型”:“点”,
“坐标”:[-89.535,
34.3654
]
},
“地名”:“美国密西西比大学”,
“财产”:{
“标题”:“使用对抗式自动编码器进行多模式自动播放列表延续”,
“国家”:“德国”,
“authorttle”:“Florian Mai”
}
},
{
“类型”:“功能”,
“几何学”:{
“类型”:“点”,
“坐标”:[
10.14,
54.33
]
},
“地名”:“24105,德国石勒苏益格-荷尔斯泰因基尔”,
“财产”:{
“标题”:“使用对抗式自动编码器进行多模式自动播放列表延续”,
“国家”:“德国”,
“作者”:“Iacopo Vagliano”
}
},
{
“类型”:“功能”,
“几何学”:{
“类型”:“点”,
“坐标”:[-89.535,
34.3654
]
},
“地名”:“美国密西西比大学”,
“财产”:{
“标题”:“使用对抗式自动编码器进行多模式自动播放列表延续”,
“国家”:“德国”,
“作者”:“卢卡斯·高尔克”
}
},
{
“类型”:“功能”,
“几何学”:{
“类型”:“点”,
“坐标”:[-1.898631,
50.744119
]
},
“地名”:“英国伯恩茅斯伯恩茅斯大学环岛,BH12 5EQ”,
“财产”:{
“标题”:“2014年报告更新:循环水产养殖系统技术及其商业应用回顾”,
“国家”:“联合王国”,
“作者”:“大卫·弗莱彻”
}
},
{
“类型”:“功能”,
“几何学”:{
“类型”:“点”,
“坐标”:[-2.89,
43.29
]
},
“地名”:“48160,西班牙比兹凯亚德里奥”,
“财产”:{
“标题”:“2014年报告更新:循环水产养殖系统技术及其商业应用回顾”,
“国家”:“西班牙”,
“作者”:“Maddi Badiola”
}
}
];
const arr=features.map(
({properties:{authorTitle,title}})=>({authorTitle,title})
);
常量输出={…arr}
log(输出);
您可以使用一个简单的循环来循环对象,并将属性添加到新对象中

var obj={
“类型”:“FeatureCollection”,
“特点”:[{
“类型”:“功能”,
“几何学”:{
“类型”:“点”,
“坐标”:[-89.535,
34.3654
]
},
“地名”:“美国密西西比大学”,