Решение задачи проходит 5/7 тестов [закрыт]

106
17 апреля 2022, 01:30
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.

Закрыт 1 год назад.

Улучшить вопрос

Описание задачи:

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

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

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"(в случае, если сообщение содержит слова, которых нет в словаре).

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

Мое решение:

module.exports = function (inputData, inputDictionary) {
    inputData = inputData
        .sort((firstItem, secondItem) => firstItem.geometry[0] - secondItem.geometry[0])
        .map(item => item.text);
    return inputData.every(txt => inputDictionary.includes(txt))
        ? inputData.join(' ')
        : 'Unreadable message';
};

P.S. Не могу понять, что не так в отрефакторенном коде. Хотелось, чтобы кто-то дал наводку, в какую сторону смотреть.

Answer 1

Если заменить символы одиночной кавычки на любые другие корректные в JS, то код у Вас вполне рабочий:

function exports(inputData, inputDictionary) {
  inputData = inputData.sort((firstItem, secondItem) => firstItem.geometry[0] - secondItem.geometry[0]);
  return inputData.every(obj => inputDictionary.includes(obj.text)) ?
    inputData.map(item => item.text).join(' ') :
    'Unreadable message';
}
const dictionary = ['James', 'Bond'];
const data = [
  { geometry: [10, 20], text: 'James' },
  { geometry: [20, 40], text: 'Bond' },
  { geometry: [5, 40], text: 'Bond' }
];
console.log(exports(data, dictionary));
const wrongData = [
  { geometry: [10, 20], text: 'James' },
  { geometry: [20, 40], text: 'Bond' },
  { geometry: [5, 40], text: 'Ivan' }
];
console.log(exports(wrongData, dictionary));

READ ALSO
Отладка node js через браузер. Visual Studio Code

Отладка node js через браузер. Visual Studio Code

Я пытаюсь запустить отладку через Visual Studio Code в браузере,но когда страница localhost открывается,с ней нет соединения

132
Цвет текста в зависимости от условия React

Цвет текста в зависимости от условия React

Имеется элемент <label htmlFor="inputUsername" >{(username) ?'V':'X' }</label> В зависимости от условия необходимо указать цвет возращенного значенияЕсли...

231
Скрипт для счетчика товаров некорректно работает

Скрипт для счетчика товаров некорректно работает

Помогите, пожалуйста! Стоимость каждого товара пересчитывается только, если ввести кол-во вручную, а если нажимаем на + или - кол-во меняется,...

302
Вырезать цифры после текста JS

Вырезать цифры после текста JS

Может кто помочь с регулярками, есть вот такая строка

93