C. Секретное сообщение. Чемпионат по программированию Яндекса. Фронтенд, Квалификация

25 May 2019

На старой заброшенной базе геодезистов вы нашли код, который возвращает секретные послания, зашифрованные среди географических данных. Скрипт содержит несколько синтаксических ошибок и кажется работает очень медленно. Ваша задача - привести его в порядок.

Формат ввода

const data = [  
    {  
        geometry: [10, 20],  
        text: ’James’  
    },  
    {  
        geometry: [20, 40],  
        text: ’Bond’  
    },  
    {  
        geometry: [5, 40],  
        text: ’Bond’  
    }  
];  
const dictionary = [’James’, ’Bond’];

Формат вывода

Bond James Bond

Примечания

В файле task.js описан метод, который принимает на вход два аргумента - data и dictionary. В переменной data передается массив объектов вида:{  
    geometry: [number, number];  
    text: string;  
}

В переменной dictionary передается массив строк - слова, которые мы умеем расшифровывать.

dictionary: string[];

Чтобы получить секретное сообщение, требуется отсортировать все объекты из массива data по первой координате из поля geometry по возрастанию, а затем собрать в строку все поля text из отсортированного массива. В массиве могут быть объекты с одинаковой первой координатой, в этом случае их сообщения одинаковы.

К сожалению, сообщение закодировано на иностранном языке, а переводчик знает только слова, заданные в переменной dictionary. Поэтому если в поле text встречается слово, которого нет в массиве dictionary, сообщение невозможно расшифровать.

Программа должна вернуть полученное сообщение или строку "Unreadable message"(в случае, если сообщение содержит слова, которых нет в словаре).

Решение необходимо предоставить в виде исправленого модуля.

Вердикт RE также означает, что отправленное решение неверно.