создать карту, которая содержит все ключи с одинаковыми буквами со всеми значениями

1

Это объект

var obj = {
    abc: 'xyz', 
    a: 12, 
    cba: 'xyz2', 
    ba: 22, 
    ab: 33, 
    abcde: 44 
};

и то, что console.log(flatSimilarKeys(obj)); печатает:

Изображение 174551

  • 4
    Можете ли вы поделиться своим кодом?
Теги:
object
dictionary

1 ответ

1
Лучший ответ

Вы можете разбить ключ, отсортировать его и присоединиться к нему с пустой строкой. Затем соберите значения.

function flatSimilarKeys(object) {
    var result = Object.create(null);           // without prototypes

    Object.keys(object).forEach(function (k) {
        var key = k.split('').sort().join('');

        result[key] = result[key] || [];
        result[key].push(object[k]);
    });
    return result;
}

console.log(flatSimilarKeys({ abc: 'xyz', a: 12, cba: 'xyz2', ba: 22, ab: 33, abcde: 44 }));
.as-console-wrapper { max-height: 100% !important; top: 0; }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню