Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 08.08.2019
Сообщений: 10

Написать функцию, которая будет разбивать строку на символы и сравнивать с другими символами из другой строки.

08.08.2019, 23:28. Показов 3018. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать функцию которая будет разбивать строку на символы и сравнивать с другими символами из другой строки. Если среди них будут одинаковые символы - вывести их вместе в консоль. Через Set у меня почему-то не получается.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
 * Given two strings, first and second. Find all letters (ignoring case)
 * which are present in both strings. Ignore whitespaces.
 */
function getOverlappingLetters(first, second) {
  // Only change code below this line
  // Only change code above this line
}
 
 
// Tests
test(getOverlappingLetters('a', 'b'), '', 'empty overlap');
test(getOverlappingLetters('aa', 'a'), 'a', 'duplicated string in overlap');
test(getOverlappingLetters('A', 'a'), 'a', 'case insensitive overlap');
test(getOverlappingLetters('Happy New Year', 'nyhz'), 'hyn', 'simple phrase');
 
function test(actual, expected, testName = '') {
  if (actual === undefined || expected === undefined) {
    console.error(`Test ${testName} failed!`);
    return;
  }
  
  let actualArr = actual.split('').sort();
  let expectedArr = expected.split('').sort();
  if (actualArr.length != expectedArr.length) {
    console.error(`Test ${testName} failed: "${actual}" length is not equal to expected "${expected}" length`);
    return;
  }
  for (let i = 0; i < expectedArr.length; i++) {
    if (actualArr[i] != expectedArr[i]) {
      console.error(`Test ${testName} failed: "${actual}" is not equal to expected "${expected}"`);
      return;
    }
  }
  console.log(`Test ${testName} passed!`);
}
https://codepen.io/mateacademy... itors=0012
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.08.2019, 23:28
Ответы с готовыми решениями:

Написать функцию, которая бы удаляла из строки s1 все символы, входящие в строку s2
Ребят, привет. У меня небольшая проблема. Задача звучит следующим образом: #include &lt;stdio.h&gt; #define MAXIMUM 11 ...

Разработать функцию,которая перекрывает символы строки заданным количеством символов другой строки, начиная с заданной позиции
Разработать функцию,которая перекрывает символы строки заданным количеством символов другой строки, начиная с заданной позиции.При...

Написать функцию remove(), которая будет удалять i-тую строку из файла
Доброго времени суток!) есть задача, вызвавшая затруднение...необходимо написать функцию remove(), которая будет удалять i-тую строку из...

1
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
09.08.2019, 05:59
Лучший ответ Сообщение было отмечено Skyapa как решение

Решение

Цитата Сообщение от Skyapa Посмотреть сообщение
Через Set у меня почему-то не получается.
Тут не нужно проверять эквивалентность экземпляров классов с несколькими свойствами.
Для штатного типа string, сравнение которого известно JavaScript-у, как раз подойдет Set с ущербными возможностями сравнения по эквивалентности экземпляров.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        /**
         * Given two strings, first and second. Find all letters (ignoring case)
         * which are present in both strings. Ignore whitespaces.
         */
        function getOverlappingLetters(first, second) {
            // Only change code below this line
            let set1 = new Set(first.toLowerCase()),
                set2 = new Set(second.toLowerCase()),
                result = "";
 
            for (let item of set1) {
                if (item !== " " && set2.has(item)) {
                    result += item;
                }
            }
            return result;
            // Only change code above this line
        }
В свежем Хроме и его клонах будет работать уже метод array.flatMap()
В MS Edge отсутствует array.flatMap()
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
        /**
         * Given two strings, first and second. Find all letters (ignoring case)
         * which are present in both strings. Ignore whitespaces.
         */
        function getOverlappingLetters(first, second) {
            // Only change code below this line
            let set1 = new Set(first.toLowerCase()),
                set2 = new Set(second.toLowerCase());
 
            return [...set1].flatMap(e => e !== " " && set2.has(e) ? [e] : []).join("");
            // Only change code above this line
        }
Но коллекция Set использует ненормально упрощенную проверку на эквивалентность ===, поэтому Set нельзя использовать для объектов, по которым надо проверять эквивалентность по конкретному свойству объекта.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.08.2019, 05:59
Помогаю со студенческими работами здесь

Написать функцию которая будет умножать любую строку на уже заданную матрицу
Написать функцию которая будет умножать любую строку на уже заданную матрицу

Функция: удалить из строки заданные символы
написать функцию которая удалит из строки заданные символы. заранее спасибо!

Слить две строки, вставив символы одной строки между символами другой строки
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой индекс j, что aj &lt; bj, а для всех i &lt; j...

Написать функцию, которая удаляет из строки s1 все символы, встречающиеся в строке s2
Народ, очень требуется помощь : :wall: № 1. Написать и протестировать функцию DELETE(s1, s2), которая удаляет из строки s1 все символы,...

Написать функцию, которая бы удаляла из строки s1 все символы встречающиеся в строке s2
Решая задачу 2.4 из книги &quot;Язык программирования СИ&quot;, в которой нужно написать функцию squeeze(s1, s2), которая бы удаляла из строки s1 все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru