Javascript 从JSON文件获取特定键/值对的数组

Javascript 从JSON文件获取特定键/值对的数组,javascript,arrays,json,javascript-objects,Javascript,Arrays,Json,Javascript Objects,这里是初学者-我想从一个JSON文件为我的世界城市超前项目创建一个数组。我已经获取了数据,现在我想提取2个键/值对(称为name/country),并将它们放入一个新的字符串数组中,该数组将具有以下语法: const arr = ["name, country", "name, country", "name, country"...] 以下是数据示例: []: 0: {country: "Andorra", ge

这里是初学者-我想从一个JSON文件为我的世界城市超前项目创建一个数组。我已经获取了数据,现在我想提取2个键/值对(称为name/country),并将它们放入一个新的字符串数组中,该数组将具有以下语法:

const arr = ["name, country", "name, country", "name, country"...]
以下是数据示例:

[]:
0: {country: "Andorra", geonameid: 3040051, name: "les Escaldes", subcountry: "Escaldes-Engordany"}
1: {country: "Andorra", geonameid: 3041563, name: "Andorra la Vella", subcountry: "Andorra la Vella"}
2: {country: "United Arab Emirates", geonameid: 290594, name: "Umm al Qaywayn", subcountry: "Umm al Qaywayn"}
3: {country: "United Arab Emirates", geonameid: 291074, name: "Ras al-Khaimah", subcountry: "Raʼs al Khaymah"}...
我知道我必须使用
.push()
.forEach()
或for循环,但我不知道如何进行。有人能告诉我怎么做吗?

const data=[{国家:“安道尔”,地理编号:3040051,名称:“les Escaldes”,次国家:“Escaldes Engordany”},
{国家:“安道尔”,地理编号:3041563,名称:“安道尔拉维拉”,次国家:“安道尔拉维拉”},
{国家:“阿拉伯联合酋长国”,地理编号:290594,名称:“Umm al-Qaywayn”,次国家:“Umm al-Qaywayn”},
{国家:“阿拉伯联合酋长国”,地理编号:291074,名称:“Ras al-Khaimah”,次国家:“Ra's al-Khaymah”}]
const arr=data.map(i=>`${i.name},${i.country}`);
console.log(arr)
像这样使用:

arr
将是一个与
data
长度相同的新数组,其中
data
中的每个
city
对象映射到字符串
city.name+,“+city.country

演示:

const data=[{国家:“安道尔”,地理编号:3040051,名称:“埃斯卡尔德斯”,次国家:“埃斯卡尔德斯·恩戈达尼”},{国家:“安道尔”,地理编号:3041563,名称:“安道尔·拉维拉”,次国家:“安道尔·拉维拉”},{国家:“阿拉伯联合酋长国”,地理编号:290594,名称:“乌姆·盖瓦因”,次国家:“乌姆·盖瓦因”},{国家:“阿拉伯联合酋长国”,地理名称:291074,名称:“Ras al-Khaimah”,次国家:“Ra's al-Khaymah”};
const arr=data.map(city=>city.name+,“+city.country);

console.log(arr);
如果您想:

arr.reduce((acc, curr) => [...acc, (`${curr.name}, ${curr.country}`)], []);
它将以所需格式返回您的值

下面的例子

const arr=[
{国家:'安道尔',地理编号:3040051,名称:'莱斯1',次国家:'埃斯卡德斯·恩戈达尼'},
{国家:'Turkey',地理编号:3040021,名称:'les Escaldes',次国家:'aaaa'},
{国家:'IDK',地理名称ID:3040021,名称:'Wow',次国家:'aaaa'}
];
const custom=arr.reduce((acc,curr)=>[…acc,(`${curr.name},${curr.country}'),[]);

console.log(自定义);
使用forEach的简单解决方案

国家=[
{国家:“安道尔”,地理编号:3040051,名称:“埃斯卡尔德斯”,次国家:“埃斯卡尔德斯恩戈达尼”},
{国家:“安道尔”,地理编号:3041563,名称:“安道尔拉维拉”,次国家:“安道尔拉维拉”},
{国家:“阿拉伯联合酋长国”,地理编号:290594,名称:“Umm al-Qaywayn”,次国家:“Umm al-Qaywayn”},
{国家:“阿拉伯联合酋长国”,地理编号:291074,名称:“Ras al-Khaimah”,次国家:“Ra's al-Khaymah”}
]
设arr=[];
让结果=[];
countries.forEach((国家,指数)=>{
让nameStr=`${country.name},${country.country}`
结果推送(nameStr);
})
console.log(结果)
//输出

//[“安道尔群岛”、“安道尔群岛”、“阿拉伯联合酋长国乌姆盖温”、“阿拉伯联合酋长国哈伊马角”]
data.forEach(i=>arr.push(i.name+”,“+i.country))
应该这样做it@ibrahimmahrir,注意到刚刚知道,thankx
data.map(i=>arr.push(`${i.name},${i.country}`)
@AbishekKumar您仍在使用
map
forEach
。这应该是
forEach
而不是
map
arr.reduce((acc, curr) => [...acc, (`${curr.name}, ${curr.country}`)], []);