Работа с массивом, сортировка, создание поля и изменение значения

Рейтинг: 1Ответов: 0Опубликовано: 03.10.2014

Всем привет.
Хочу вывести категории с "алфавитом", т.е. отсортировать их и вывести что-то вроде пункта, в котором находиться первый символ значения ключа.

К примеру, есть массив

[{name: 'слово'},{name: 'слово'},{name: 'название'},{name: 'имя'}]

Сначала я его сортирую так:

var catalogSort = catalog.sort(function(one, two) {
    if (one.name < two.name) return -1;
    if (one.name > two.name) return 1;
    return 0;
});

Теперь добавляю новое поле с первым символом:

var used = [];
for(var x = 0; x < catalogSort.length; x++) {
    used[x] = {val: catalogSort[x].name.slice(0, 1), name: catalogSort[x].name}
}

Получаю такой массив:

[{val: 'с', name: 'слово'},{val: 'с', name: 'слово'},{val: 'н', name: 'название'},{val: 'и', name: 'имя'}]

Теперь проблема в том, что мне нужно поле val изменить на false в том случае, если значение уже встречается в массиве. Как такое реализовать, чтобы получить такой массив?

[{val: 'с', name: 'слово'},{val: 'false', name: 'слово'},{val: 'н', name: 'название'},{val: 'и', name: 'имя'}]

Ответы

Ответов пока нет.