Я пытаюсь выяснить, как преобразовать столбцы в строке в строку с помощью JavaScript - PullRequest
0 голосов
/ 22 июня 2019

Код, над которым я работаю, требует, чтобы я взял все символы в строке, разбил ее на строки, а затем записал все столбцы обратно в одну строку.

Я разбил символ на строки, но не могу записать столбцы обратно в новую строку:

let String= nodeStack.nodeValue;
// this wiil structure the text into a 8 columnns
let el=String.match(/.{1,8}/g);

for (i in el){
    let node = document.createTextNode(el[i]);
    let paraStack = document.createElement('p');
    paraStack.appendChild(node);
    stackCard.appendChild(paraStack);


    //this is to log all the columns into a single row
    //this is the part i am having issues with
    let res = node.nodeValue;

    let codMsg= [];
    res.split('\n').forEach(function(v){
        v.split('').forEach(function(v1, i){
            codMsg[i] = (codMsg [i]|| '') + v1;
        });
    });
    console.log(codMsg.join('\n')) ;
}

Текущий результат отображает что-то вроде:

// console.log(el) gives
hertijhp
joiunjdk
njjooool

// console.log(codMsg.join('\n')) logs everything like this
h
e
r
t
i...
// instead of "hjneojrij"

1 Ответ

0 голосов
/ 22 июня 2019

Начните со строки и разбейте ее на группы, как у вас:

let s= "ThisIsAReallyLongStringWithNoSpacesInItAtAll"
let groups = s.match(/.{1,8}/g);

console.log(groups)

Как видите, каждая строка содержит не более 8 символов, поэтому в конце вы захотите получить массив длиной 8. Для каждого из этих 8 массивов с определенным индексом вы хотите получить все значения string[index] из ваших групп. Это можно выразить в виде карты:

groups.map(s => s[i]).join(''))

Это берет каждую строку из ваших групп, получает элемент i и присоединяет его обратно к строке. Вы можете сделать это для каждого индекса 0 - 8, используя Array.from (или цикл for и push()), и в итоге получите что-то вроде:

let s= "ThisIsAReallyLongStringWithNoSpacesInItAtAll"
let groups = s.match(/.{1,8}/g);

let a = Array.from({length: 8}, (_,i)  => groups.map(s => s[i]).join(''))
console.log(a)

join() будет игнорировать значения undefined, которые мы получаем, когда мы пытаемся индексировать за длиной более коротких столбцов, давая нам более короткие строки для последних столбцов, например "RnWaA"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...