Добавление символов в начало массива, формирующих слова

Когда я смотрю на набор символов, я пытаюсь поместить каждую букву в определенный порядок в массиве. Например: учитывая строки «cat» и » dog » я хотел бы массив , который содержит[d,o,g,c,a,t], cat в конце массива, потому что он был прочитан первым.

В настоящее время я пробовал это:

Однако, когда я пробую код ниже, предполагая, что строки «кошка»и » собака».
Я получаю массив, содержащий: [c,a,t,d,o,g]. Вместо push я также попытался.unshift, но массив теперь читает: [g,o,d,t,a,c].

  var chars = /^[a-z]$/;
  var string = [];
  function makeword(){
    if(currentChar.match(chars)){
    string.push(currentChar);
    currentChar = getNextChar(); //Gets next Character in the String
    makeword();
    }
  }

Возможно ли что-то подобное в Javascript?

2 ответа

  1. Если я правильно понял, вы хотите предоставить список строк, а затем показать их в массиве в обратном порядке, с каждой буквой в качестве элемента массива. Следующая функция будет делать именно это:

    function makeWords() {
      var arr = [];
    
      for(var i = arguments.length - 1; i >=0; i--) {
        arr.push(arguments[i]);
      }
    
      return arr.join('').split('');
    }
    

    таким образом, запуск makeWords('cat', 'dog')приведет к ['d','o','g','c','a','t'].

  2. Это относительно простой код, когда используется функциональный подход. Операторы rest и spread очень удобны как для сбора аргументов функции, так и для распространения символов слова в массив.

    var characterify = (...c) => c.reduceRight((a,b) => a.concat([...b]) ,[]);
    
    document.write("<pre>" + JSON.stringify(characterify("cat","dog")) + "</pre>");