Nano Hash - криптовалюты, майнинг, программирование

Vanilla JS - перевернуть каждую подстроку внутри строки

Как я могу перевернуть каждую подстроку внутри строки? Например, это моя строка

Lorem Ipsum is simply dummy text of the printing and typesetting industry.

И хотите превратить его в:

merol muspi si ylpmis ymmud txet fo eht ...

Я пробовал myString.split(' ').reverse().join(' '));, но это меняет положение подстрок вместо того, чтобы ставить первое слово как последнее и т. д.


Ответы:


1

Если вы хотите простой реверс:

let myString = `Lorem Ipsum is simply dummy text of the printing and typesetting industry.`;

console.log(myString.split(' ').map(word => word.split(``).reverse().join(``)).join(` `))

Но этот подход игнорирует верхний регистр в 1-м слове и точку в конце.

если вы хотите исправить заглавную букву и точку, вы можете сделать это:

let myString = `Lorem Ipsum is simply dummy text of the printing and typesetting industry.`;

console.log(myString.split(' ').map(word => word.split(``).reverse().join(``)).join(` `))

console.log(myString.split(' ').map(word => {
    const firstLetterIsUppercase = word.charAt(0) === word.charAt(0).toUpperCase();
    const lastCharacterIsDot = word.charAt(word.length -1 ) === `.`;
    let revertWord = word
        .toLowerCase()
        .split(``)
        .reverse()
        .join(``);
    if (firstLetterIsUppercase) {
     revertWord = revertWord.charAt(0).toUpperCase() + revertWord.slice(1); 
    }

    if (lastCharacterIsDot) {
        revertWord = revertWord.slice(1) + `.`;
    }

    return revertWord;
}).join(` `))

10.02.2020

2

Проблема

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

Решение

Алгоритм можно определить следующим образом:

  1. Разбить исходную строку на подстроки.
  2. Перевернуть каждую подстроку
  3. возвращаемая строка с перевернутыми подстроками, разделенными одним пробелом каждая

Ваш код будет выглядеть примерно так

let str = `Lorem Ipsum is simply dummy text of the printing and typesetting industry.`;

let words = str.split(' '); // get sub srings

words.map(each => each.split('').reverse().join('').toLowerCase()); // each word is now reversed

let rev_str_inplace = words.join(' ');
console.log(rev_str_inplace);
// 'merol muspi si ylpmis ymmud txet fo gnitnirp dna gnittesepyt .yrtsudni'

РЕДАКТИРОВАТЬ

Если вы хотите удалить точку в своем развороте, вы можете просто изменить код разворота, подобный этому

words.map(each => each.split('.').map(c => c.split('').reverse().join('').toLowerCase()))
10.02.2020

3

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

const str = Lorem Ipsum is simply dummy text of the printing and typesetting industry.
str.split(' ').map(i => i.split('').reverse().join('')).join(' ')
10.02.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..