如何在javascript中调整对象值
我需要在javascript中调整对象值。ent是输入数组。语言中的第一个对象由数组值组成,我需要将对象值展平。[[{}]、{}]、{}]、{}]] 将值导出为语言:[{},{},{}]如何在javascript中调整对象值,javascript,arrays,object,multidimensional-array,nested,Javascript,Arrays,Object,Multidimensional Array,Nested,我需要在javascript中调整对象值。ent是输入数组。语言中的第一个对象由数组值组成,我需要将对象值展平。[[{}]、{}]、{}]、{}]] 将值导出为语言:[{},{},{}] const ent =[{ "name": "Afghanistan", "topLevelDomain": [ ".af" ], "alpha2Code": &
const ent =[{
"name": "Afghanistan",
"topLevelDomain": [
".af"
],
"alpha2Code": "AF",
"alpha3Code": "AFG",
"callingCodes": [
"93"
],
"capital": "Kabul",
"altSpellings": [
"AF",
"Afġānistān"
],
"region": "Asia",
"subregion": "Southern Asia",
"population": 27657145,
"latlng": [
33,
65
],
"demonym": "Afghan",
"area": 652230,
"gini": 27.8,
"timezones": [
"UTC+04:30"
],
"borders": [
"IRN",
"PAK",
"TKM",
"UZB",
"TJK",
"CHN"
],
"nativeName": "افغانستان",
"numericCode": "004",
"currencies": [
{
"code": "AFN",
"name": "Afghan afghani",
"symbol": "؋"
}
],
"languages": [
[{
"iso639_1": "ps",
"iso639_2": "pus",
"name": "Pashto",
"nativeName": "پښتو"
}],
[{
"iso639_1": "uz",
"iso639_2": "uzb",
"name": "Uzbek",
"nativeName": "Oʻzbek"
}],
[{
"iso639_1": "tk",
"iso639_2": "tuk",
"name": "Turkmen",
"nativeName": "Türkmen"
}],
],
"translations": {
"de": "Afghanistan",
"es": "Afganistán",
"fr": "Afghanistan",
"ja": "アフガニスタン",
"it": "Afghanistan",
"br": "Afeganistão",
"pt": "Afeganistão",
"nl": "Afghanistan",
"hr": "Afganistan",
"fa": "افغانستان"
},
"flag": "https://restcountries.eu/data/afg.svg",
"regionalBlocs": [
{
"acronym": "SAARC",
"name": "South Asian Association for Regional Cooperation",
"otherAcronyms": [],
"otherNames": []
}
],
"cioc": "AFG"
},
{
"name": "Åland Islands",
"topLevelDomain": [
".ax"
],
"alpha2Code": "AX",
"alpha3Code": "ALA",
"callingCodes": [
"358"
],
"capital": "Mariehamn",
"altSpellings": [
"AX",
"Aaland",
"Aland",
"Ahvenanmaa"
],
"region": "Europe",
"subregion": "Northern Europe",
"population": 28875,
"latlng": [
60.116667,
19.9
],
"demonym": "Ålandish",
"area": 1580,
"gini": null,
"timezones": [
"UTC+02:00"
],
"borders": [],
"nativeName": "Åland",
"numericCode": "248",
"currencies": [
{
"code": "EUR",
"name": "Euro",
"symbol": "€"
}
],
"languages": [
{
"iso639_1": "sv",
"iso639_2": "swe",
"name": "Swedish",
"nativeName": "svenska"
}
],
"translations": {
"de": "Åland",
"es": "Alandia",
"fr": "Åland",
"ja": "オーランド諸島",
"it": "Isole Aland",
"br": "Ilhas de Aland",
"pt": "Ilhas de Aland",
"nl": "Ålandeilanden",
"hr": "Ålandski otoci",
"fa": "جزایر الند"
},
"flag": "https://restcountries.eu/data/ala.svg",
"regionalBlocs": [
{
"acronym": "EU",
"name": "European Union",
"otherAcronyms": [],
"otherNames": []
}
],
"cioc": ""
},
{
"name": "Albania",
"topLevelDomain": [
".al"
],
"alpha2Code": "AL",
"alpha3Code": "ALB",
"callingCodes": [
"355"
],
"capital": "Tirana",
"altSpellings": [
"AL",
"Shqipëri",
"Shqipëria",
"Shqipnia"
],
"region": "Europe",
"subregion": "Southern Europe",
"population": 2886026,
"latlng": [
41,
20
],
"demonym": "Albanian",
"area": 28748,
"gini": 34.5,
"timezones": [
"UTC+01:00"
],
"borders": [
"MNE",
"GRC",
"MKD",
"KOS"
],
"nativeName": "Shqipëria",
"numericCode": "008",
"currencies": [
{
"code": "ALL",
"name": "Albanian lek",
"symbol": "L"
}
],
"languages": [
{
"iso639_1": "sq",
"iso639_2": "sqi",
"name": "Albanian",
"nativeName": "Shqip"
}
],
"translations": {
"de": "Albanien",
"es": "Albania",
"fr": "Albanie",
"ja": "アルバニア",
"it": "Albania",
"br": "Albânia",
"pt": "Albânia",
"nl": "Albanië",
"hr": "Albanija",
"fa": "آلبانی"
},
"flag": "https://restcountries.eu/data/alb.svg",
"regionalBlocs": [
{
"acronym": "CEFTA",
"name": "Central European Free Trade Agreement",
"otherAcronyms": [],
"otherNames": []
}
],
"cioc": "ALB"
},
];
const outputKeys = ['name', 'capital', 'region', 'languages', 'flag'];
const output = ent.map(item =>
outputKeys.reduce((val, key) => ({ ...val, [key]: item[key] }), {})
);
console.log(output);
Ouput是一个数组,其中selected keys的值为return,但我需要调整对象的值
const output = [
{
name: 'Afghanistan',
capital: 'Kabul',
region: 'Asia',
languages: [
[{
iso639_1: 'ps',
iso639_2: 'pus',
name: 'Pashto',
nativeName: 'پښتو'
}],
[{
iso639_1: 'uz',
iso639_2: 'uzb',
name: 'Uzbek',
nativeName: 'Oʻzbek'
}],
[{
iso639_1: 'tk',
iso639_2: 'tuk',
name: 'Turkmen',
nativeName: 'Türkmen'
}]
],
flag: 'https://restcountries.eu/data/afg.svg'
},
{
name: 'Åland Islands',
capital: 'Mariehamn',
region: 'Europe',
languages: [
{
iso639_1: 'sv',
iso639_2: 'swe',
name: 'Swedish',
nativeName: 'svenska'
}
],
flag: 'https://restcountries.eu/data/ala.svg'
},
{
name: 'Albania',
capital: 'Tirana',
region: 'Europe',
languages: [
{
iso639_1: 'sq',
iso639_2: 'sqi',
name: 'Albanian',
nativeName: 'Shqip'
}
],
flag: 'https://restcountries.eu/data/alb.svg'
}
];
我需要调整对象值。[[{}],{}],{}]]
将值导出为语言:[{},{},{}]
const ent =[{
"name": "Afghanistan",
"topLevelDomain": [
".af"
],
"alpha2Code": "AF",
"alpha3Code": "AFG",
"callingCodes": [
"93"
],
"capital": "Kabul",
"altSpellings": [
"AF",
"Afġānistān"
],
"region": "Asia",
"subregion": "Southern Asia",
"population": 27657145,
"latlng": [
33,
65
],
"demonym": "Afghan",
"area": 652230,
"gini": 27.8,
"timezones": [
"UTC+04:30"
],
"borders": [
"IRN",
"PAK",
"TKM",
"UZB",
"TJK",
"CHN"
],
"nativeName": "افغانستان",
"numericCode": "004",
"currencies": [
{
"code": "AFN",
"name": "Afghan afghani",
"symbol": "؋"
}
],
"languages": [
[{
"iso639_1": "ps",
"iso639_2": "pus",
"name": "Pashto",
"nativeName": "پښتو"
}],
[{
"iso639_1": "uz",
"iso639_2": "uzb",
"name": "Uzbek",
"nativeName": "Oʻzbek"
}],
[{
"iso639_1": "tk",
"iso639_2": "tuk",
"name": "Turkmen",
"nativeName": "Türkmen"
}],
],
"translations": {
"de": "Afghanistan",
"es": "Afganistán",
"fr": "Afghanistan",
"ja": "アフガニスタン",
"it": "Afghanistan",
"br": "Afeganistão",
"pt": "Afeganistão",
"nl": "Afghanistan",
"hr": "Afganistan",
"fa": "افغانستان"
},
"flag": "https://restcountries.eu/data/afg.svg",
"regionalBlocs": [
{
"acronym": "SAARC",
"name": "South Asian Association for Regional Cooperation",
"otherAcronyms": [],
"otherNames": []
}
],
"cioc": "AFG"
},
{
"name": "Åland Islands",
"topLevelDomain": [
".ax"
],
"alpha2Code": "AX",
"alpha3Code": "ALA",
"callingCodes": [
"358"
],
"capital": "Mariehamn",
"altSpellings": [
"AX",
"Aaland",
"Aland",
"Ahvenanmaa"
],
"region": "Europe",
"subregion": "Northern Europe",
"population": 28875,
"latlng": [
60.116667,
19.9
],
"demonym": "Ålandish",
"area": 1580,
"gini": null,
"timezones": [
"UTC+02:00"
],
"borders": [],
"nativeName": "Åland",
"numericCode": "248",
"currencies": [
{
"code": "EUR",
"name": "Euro",
"symbol": "€"
}
],
"languages": [
{
"iso639_1": "sv",
"iso639_2": "swe",
"name": "Swedish",
"nativeName": "svenska"
}
],
"translations": {
"de": "Åland",
"es": "Alandia",
"fr": "Åland",
"ja": "オーランド諸島",
"it": "Isole Aland",
"br": "Ilhas de Aland",
"pt": "Ilhas de Aland",
"nl": "Ålandeilanden",
"hr": "Ålandski otoci",
"fa": "جزایر الند"
},
"flag": "https://restcountries.eu/data/ala.svg",
"regionalBlocs": [
{
"acronym": "EU",
"name": "European Union",
"otherAcronyms": [],
"otherNames": []
}
],
"cioc": ""
},
{
"name": "Albania",
"topLevelDomain": [
".al"
],
"alpha2Code": "AL",
"alpha3Code": "ALB",
"callingCodes": [
"355"
],
"capital": "Tirana",
"altSpellings": [
"AL",
"Shqipëri",
"Shqipëria",
"Shqipnia"
],
"region": "Europe",
"subregion": "Southern Europe",
"population": 2886026,
"latlng": [
41,
20
],
"demonym": "Albanian",
"area": 28748,
"gini": 34.5,
"timezones": [
"UTC+01:00"
],
"borders": [
"MNE",
"GRC",
"MKD",
"KOS"
],
"nativeName": "Shqipëria",
"numericCode": "008",
"currencies": [
{
"code": "ALL",
"name": "Albanian lek",
"symbol": "L"
}
],
"languages": [
{
"iso639_1": "sq",
"iso639_2": "sqi",
"name": "Albanian",
"nativeName": "Shqip"
}
],
"translations": {
"de": "Albanien",
"es": "Albania",
"fr": "Albanie",
"ja": "アルバニア",
"it": "Albania",
"br": "Albânia",
"pt": "Albânia",
"nl": "Albanië",
"hr": "Albanija",
"fa": "آلبانی"
},
"flag": "https://restcountries.eu/data/alb.svg",
"regionalBlocs": [
{
"acronym": "CEFTA",
"name": "Central European Free Trade Agreement",
"otherAcronyms": [],
"otherNames": []
}
],
"cioc": "ALB"
},
];
const outputKeys = ['name', 'capital', 'region', 'languages', 'flag'];
const output = ent.map(item =>
outputKeys.reduce((val, key) => ({ ...val, [key]: item[key] }), {})
);
console.log(output);
我试过这样做:
const outputKeys=['name'、'capital'、'region'、'languages'、'flag']
const output=ent.map(项=>
outputKeys.reduce((val,key)=>({…val[key]:项[key].flat(无穷大)}),{})
);
控制台日志(输出)
注意第一个对象,该语言由嵌套数组组成!提前感谢。您可以使用“分解结构”仅选择特定属性,然后。仅展开语言数组
常数=[{
“姓名”:“阿富汗”,
“topLevelDomain”:[
“.af”
],
“字母代码”:“AF”,
“alpha3Code”:“AFG”,
“呼叫代码”:[
"93"
],
“首都”:“喀布尔”,
“替换拼写”:[
“AF”,
“Afġānistān”
],
“区域”:“亚洲”,
“次区域”:“南亚”,
“人口”:27657145,
“latlng”:[
33,
65
],
“人口名称”:“阿富汗”,
“面积”:652230,
“基尼”:27.8,
“时区”:[
“UTC+04:30”
],
“边界”:[
“IRN”,
“巴基斯坦”,
“TKM”,
“UZB”,
“TJK”,
“CHN”
],
“国家名称”:“国家名称”,
“数字代码”:“004”,
“货币”:[
{
“代码”:“AFN”,
“姓名”:“阿富汗阿富汗人”,
“符号”:“؋”
}
],
“语言”:[
[{
“iso639_1”:“ps”,
“iso639_2”:“pus”,
“姓名”:“普什图语”,
“国家名称”:“国家名称”
}],
[{
“iso639_1”:“uz”,
“iso639_2”:“uzb”,
“姓名”:“乌兹别克语”,
“nativeName”:“Oʻzbek”
}],
[{
“iso639_1”:“tk”,
“iso639_2”:“tuk”,
“姓名”:“土库曼”,
“nativeName”:“蒂尔克曼”
}],
],
“翻译”:{
“de”:“阿富汗”,
“es”:“Afganistán”,
“fr”:“阿富汗”,
“ja”:アフガニスタン",
“它”:“阿富汗”,
“br”:“Afeganistão”,
“pt”:“Afeganistão”,
“nl”:“阿富汗”,
“hr”:“Afganistan”,
“fa”:“fa”
},
“旗帜”:https://restcountries.eu/data/afg.svg",
“区域集团”:[
{
“首字母缩略词”:“南盟”,
“名称”:“南亚区域合作联盟”,
“其他首字母缩略词”:[],
“其他名称”:[]
}
],
“cioc”:“AFG”
},
{
“名称”:“奥兰群岛”,
“topLevelDomain”:[
“.ax”
],
“alpha2Code”:“AX”,
“alpha3Code”:“ALA”,
“呼叫代码”:[
"358"
],
“资本”:“玛丽哈门”,
“替换拼写”:[
“斧头”,
“Aaland”,
“阿兰德”,
“阿维南马”
],
“区域”:“欧洲”,
“次区域”:“北欧”,
“人口”:28875,
“latlng”:[
60.116667,
19.9
],
“demonym”:“Ålandish”,
“面积”:1580,
“基尼”:空,
“时区”:[
“UTC+02:00”
],
“边界”:[…],
“nativeName”:“奥兰”,
“数字代码”:“248”,
“货币”:[
{
“代码”:“欧元”,
“名称”:“欧元”,
“符号”:“€”
}
],
“语言”:[
{
“iso639_1”:“sv”,
“iso639_2”:“swe”,
“姓名”:“瑞典语”,
“nativeName”:“svenska”
}
],
“翻译”:{
“德”:“奥兰”,
“es”:“Alandia”,
“fr”:“奥兰”,
“ja”:オーランド諸島",
“it”:“Isole Aland”,
“br”:“Ilhas de Aland”,
“pt”:“Ilhas de Aland”,
“nl”:“奥兰登”,
“hr”:“奥兰斯基奥托奇”,
“fa”:“fa”
},
“旗帜”:https://restcountries.eu/data/ala.svg",
“区域集团”:[
{
“首字母缩略词”:“欧盟”,
“名称”:“欧盟”,
“其他首字母缩略词”:[],
“其他名称”:[]
}
],
“cioc”:”
},
{
“姓名”:“阿尔巴尼亚”,
“topLevelDomain”:[
“.al”
],
“字母代码”:“AL”,
“alpha3Code”:“ALB”,
“呼叫代码”:[
"355"
],
“首都”:“地拉那”,
“替换拼写”:[
“AL”,
“Shqipëri”,
“Shqipëria”,
“Shqipnia”
],
“区域”:“欧洲”,
“次区域”:“南欧”,
“人口”:2886026,
“latlng”:[
41,
20
],
“人口名称”:“阿尔巴尼亚语”,
“面积”:28748,
“基尼”:34.5,
“时区”:[
“UTC+01:00”
],
“边界”:[
“MNE”,
“GRC”,
“MKD”,
“科斯”
],
“nativeName”:“Shqipëria”,
“数字代码”:“008”,
“货币”:[
{
“代码”:“全部”,
“名称”:“阿尔巴尼亚列克”,
“符号”:“L”
}
],
“语言”:[
{
“iso639_1”:“sq”,
“iso639_2”:“sqi”,
“姓名”:“阿尔巴尼亚语”,
“nativeName”:“Shqip”
}
],
“翻译”:{
“德”:“阿尔巴宁”,
“es”:“阿尔巴尼亚”,
“fr”:“Albanie”,
“ja”:アルバニア",
“它”:“阿尔巴尼亚”,
“br”:“Alb–nia”,
“pt”:“Alb–nia”,
“nl”:“阿尔巴尼”,
“hr”:“Albanija”,
“fa”:“fa”
},
“旗帜”:https://restcountries.eu/data/alb.svg",
“区域集团”:[
{
“首字母缩略词”:“CEFTA”,
“名称”:“中欧自由贸易协定”,
“其他首字母缩略词”:[],
“其他名称”:[]
}
],
“cioc”:“ALB”
},
];
const output=ent.map({name,capital,region,languages,flag})=>({
名称
首都
区域
语言:languages.flat(),
旗帜
}));
console.log(output);
向我们展示您的尝试。因此,这不是免费的代码编写服务。这里的目标是让您发布您的尝试,以解决您自己和其他人的问题