Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Nhóm tên dựa trên chữ cái đầu trong JavaScript

Giả sử chúng ta có mảng tên như sau:

const arr = ["Simon", "Mike", "Jake", "Lara", "Susi", "Blake", "James"];

Chúng ta cần viết hàm JavaScript nhận mảng như vậy. Hàm trả về mảng đối tượng với hai thuộc tính:

  • letter -> chữ cái mà tên được nhóm theo

  • names -> mảng tên thuộc nhóm đó

Ví dụ

Mã cho việc này:

const arr = ["Simon", "Mike", "Jake", "Lara", "Susi", "Blake", "James"]; const groupNames = arr => {    const map = arr.reduce((acc, val) => {       let char = val.charAt(0).toUpperCase();       acc[char] = [].concat((acc[char] || []), val);       return acc;    }, {});    const res = Object.keys(map).map(el => ({       letter: el,       names: map[el]    }));    return res; }; console.log(groupNames(arr));

Đầu ra

Kết quả trên console:

[    { letter: 'S', names: [ 'Simon', 'Susi' ] },    { letter: 'M', names: [ 'Mike' ] },    { letter: 'J', names: [ 'Jake', 'James' ] },    { letter: 'L', names: [ 'Lara' ] },    { letter: 'B', names: [ 'Blake' ] } ]