Javascript 如何对数组列表项进行分类

Javascript 如何对数组列表项进行分类,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我有一系列按字母顺序排列的国家。但我必须使用javascript按字母顺序对它们进行分类 示例数组: [Antigua,Barbados,China,Cuba,Dominican,Jamaica] A: Antigua B: Barbados C: China,Cuba D: Dominican J: Jamaica 预期输出: [Antigua,Barbados,China,Cuba,Dominican,Jamaica] A: Antigua B: Barbados C: China,C

我有一系列按字母顺序排列的国家。但我必须使用javascript按字母顺序对它们进行分类

示例数组:

[Antigua,Barbados,China,Cuba,Dominican,Jamaica]
A: Antigua
B: Barbados
C: China,Cuba
D: Dominican
J: Jamaica
预期输出:

[Antigua,Barbados,China,Cuba,Dominican,Jamaica]
A: Antigua
B: Barbados
C: China,Cuba
D: Dominican
J: Jamaica
有什么建议吗?

使用
Array#reduce
返回类型为
{[index:string]:Array}
的对象,其中索引表示第一个字母,数组包含以该字母开头的所有国家/地区

var list=[“安提瓜”、“巴巴多斯”、“中国”、“古巴”、“多米尼加”、“牙买加”];
var result=list.reduce(函数(结果,项){
var key=item[0];//键是每个国家/地区的第一个字母
result[key]=result[key]| |[];//如果数组不存在,则创建该数组
结果[key].push(item);//将元素添加到数组中
返回结果;
}, {});
log(“对象形式:”);
控制台日志(结果);
var textResult=Object.entries(result).map(函数([键,列表]){
返回`${key}:${list.join()}`
}).join(“\n\r”);
日志(“文本形式:”);
console.log(textResult)
var obj={}
var arr=[“安提瓜”、“巴巴多斯”、“中国”、“古巴”、“多米尼加”、“牙买加”]
arr.forEach(x=>{
如果(!obj[x[0]])obj[x[0]]=[];
obj[x[0]]=obj[x[0]].concat([x]);
});
控制台日志(obj);

Object.keys(obj.forEach(x=>console.log(`${x}:${obj[x]}'))
您可以这样做:

let sourceData=[‘安提瓜’、‘巴巴多斯’、‘中国’、‘古巴’、‘多米尼加’、‘牙买加’];
const result=sourceData.reduce((a,c)=>{
设key=c.子串(0,1);
a[键]=a[键]| |[];
a[键]。按(c);
返回a;
}, {})

控制台日志(结果)请更新您迄今为止为实现此目标所做的任何尝试。这样你就能得到更符合你要求的答案。
中国发生了什么事
?在上述代码中添加了修复程序,它现在可以工作了。。。感谢您指出您的姓名=[“迈克”、“马特”、“南希”、“亚当”、“珍妮”、“南希”、“卡尔”];var uniqueNames=[];$。每个(名称,函数(i,el){if($.inArray(el,uniqueNames)==-1)uniqueNames.push(el);});