Предполагая, что имя после запятой является фамилией, вы можете разбить каждую внутреннюю строку на массив имен и вторых имен, а затем использовать .sort()
с деструктуризацией, чтобы получить фамилии изоба внутренних массива. Затем вы можете использовать .localeCompare()
для лексикографического сравнения обеих строк. Наконец, вы можете .map()
снова преобразовать ваши внутренние массивы обратно в массив строк.
См. Пример ниже:
const myArr = ["gopal, roy", "shaym, verma", "akash, jaiswal"];
const res = myArr
.map(name => name.split(', '))
.sort(([_, a], [__, b]) => a.localeCompare(b))
.map(name => name.join(', '));
console.log(res);
Кроме того, для более эффективного подхода можно разделить метод .sort()
:
const myArr = ["gopal, roy", "shaym, verma", "akash, jaiswal"];
const res = myArr
.sort((a, b) => a.split(',').pop().localeCompare(b.split(',').pop()))
console.log(res);