2017-09-25 64 views

回答

0

如果你有名称的列表,我会做的是名称,将其拆分,并让你有上面的列表。看我的example

所以现在你可以在阵列上运行.map,并相应显示字母和名称!

const names = [ 
    "Ned Stark", 
    "Robert Baratheon", 
    "Jaime Lannister", 
    "Catelyn Stark", 
    "Cersei Lannister", 
    "Daenerys Targaryen", 
    "Jorah Mormont", 
    "Jon Snow" 
] 

function getFirstLetterFrom(value) { 
    return value.slice(0, 1).toUpperCase(); 
} 

const newNames = names 
    .reduce(function (list, name, index) { 
     let listItem = list.find((item) => item.letter && item.letter === getFirstLetterFrom(name)); 
     if (!listItem) { 
     list.push({"letter": getFirstLetterFrom(name), "names": [name]}) 
     } else { 
     listItem.names.push(name) 
     } 

     return list; 
    }, []); 

console.log(newNames) 
相关问题