Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.
Закрыт 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. Не могу понять, что не так в отрефакторенном коде. Хотелось, чтобы кто-то дал наводку, в какую сторону смотреть.
Если заменить символы одиночной кавычки на любые другие корректные в 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));
Я пытаюсь запустить отладку через Visual Studio Code в браузере,но когда страница localhost открывается,с ней нет соединения
Имеется элемент <label htmlFor="inputUsername" >{(username) ?'V':'X' }</label> В зависимости от условия необходимо указать цвет возращенного значенияЕсли...
Помогите, пожалуйста! Стоимость каждого товара пересчитывается только, если ввести кол-во вручную, а если нажимаем на + или - кол-во меняется,...