Javascript 以ES6方式从数组的对象获取特定值

Javascript 以ES6方式从数组的对象获取特定值,javascript,arrays,json,node.js,ecmascript-6,Javascript,Arrays,Json,Node.js,Ecmascript 6,我有一个像 var d = [{ "AD": { "name": "Andorra", "native": "Andorra", "phone": "376", "continent": "EU", "capital": "Andorra la Vella", "currency": "EUR", } }, { "AE": { "name": "United Arab Emirates", "native": "دولة

我有一个像

var d = [{
  "AD": {
    "name": "Andorra",
    "native": "Andorra",
    "phone": "376",
    "continent": "EU",
    "capital": "Andorra la Vella",
    "currency": "EUR",
  }
}, {
  "AE": {
    "name": "United Arab Emirates",
    "native": "دولة الإمارات العربية المتحدة",
    "phone": "971",
    "continent": "AS",
    "capital": "Abu Dhabi",
    "currency": "AED",
  }
}, {
  "AF": {
    "name": "Afghanistan",
    "native": "افغانستان",
    "phone": "93",
    "continent": "AS",
    "capital": "Kabul",
    "currency": "AFN",
  }
}] 
我想使用ES6高阶函数获得每个对象的名称,而不使用for或foreach


我尝试了
过滤器
映射
,但不知道何时使用什么

您可以通过以下方式轻松实现:

var d=[{
“广告”:{
“名称”:“安道尔”,
“本地人”:“安道尔”,
“电话”:“376”,
“大陆”:“欧盟”,
“首都”:“安道尔首都”,
“货币”:“欧元”,
}
}, {
“AE”:{
“名称”:“阿拉伯联合酋长国”,
“本地人”:“本地人”,
“电话”:“971”,
“大陆”:“作为”,
“首都”:“阿布扎比”,
“货币”:“AED”,
}
}, {
“AF”:{
“姓名”:“阿富汗”,
“本地人”:“本地人”,
“电话”:“93”,
“大陆”:“作为”,
“首都”:“喀布尔”,
“货币”:“AFN”,
}
}] 
常量名称=d.reduce((acc,curr)=>{
常量键=对象键(当前);
const name=curr[keys[0]].name;
附件推送(名称)
返回acc;
}, []);

console.log(名称)
实现这一点的简单方法是:

var d=[{
“广告”:{
“名称”:“安道尔”,
“本地人”:“安道尔”,
“电话”:“376”,
“大陆”:“欧盟”,
“首都”:“安道尔首都”,
“货币”:“欧元”,
}
}, {
“AE”:{
“名称”:“阿拉伯联合酋长国”,
“本地人”:“本地人”,
“电话”:“971”,
“大陆”:“作为”,
“首都”:“阿布扎比”,
“货币”:“AED”,
}
}, {
“AF”:{
“姓名”:“阿富汗”,
“本地人”:“本地人”,
“电话”:“93”,
“大陆”:“作为”,
“首都”:“喀布尔”,
“货币”:“AFN”,
}
}] 
d、 地图(项目=>{
console.log(Object.keys(item));

})
如果每个对象只有一个关键点(AD、AE、AF…),则可以使用以下方法:

const d=[{
广告:{
名称:“安道尔”,
}
}, {
AE:{
名称:“阿拉伯联合酋长国”,
}
}, {
AF:{
名称:“阿富汗”,
},
}];
const reduced=d.map(x=>x[Object.keys(x)[0]].name);

控制台日志(减少)每个物体的名称都表示安道尔、阿拉伯联合酋长国和阿富汗。这是一个可怕的结构。不要在同一数组中的对象中使用不同的属性。与
数组.map
相比,为什么要使用
数组.reduce
?对不起,这不是OP要求的