JavaScript Вставляет разделитель и соединяет содержимое массива в одну строку

#javascript

Вопрос:

Напишите функцию, которая принимает три аргумента (массив, разделитель и число). Функция объединит содержимое массива в строку, вставив разделитель после каждого n-го элемента массива и отобразит полученную строку в консоли:

 functionName([0, 2, “Hello”, 7, “TO”, “---“], “ ”, 3);
 

// выдаст следующее сообщение в консоли:

 output => 02Hello 7TO--- 
 

Комментарии:

1. хороший вопрос, что ты пробовал?

Ответ №1:

 let res = '';
function joinLst(lst, deli, num) {
  for (let i = 0; i < lst.length; i  ) {
      res  = lst[i]
  if((i   1) % num == 0) {
    res  = deli
  }
  }
  return res

}

console.log(joinLst([0, 2, 'Hello', 7, 'TO', '---'], ' ', 3)) 

Ничего особенного, просто базовый для оператора loop и i.

Я просто продолжал добавлять элементы из списка в res , а также проверял, соответствует ли позиция в настоящее время номеру, указанному в функции, затем добавьте deli в этот момент.

Комментарии:

1. Также обратите внимание, что функция % возвращает остаток, если число уменьшается на другое. Итак, здесь, поскольку индекс на 1 меньше, чем его позиция (например, первая позиция имеет нулевой индекс), поэтому я добавил 1 к i, а затем проверил остаток

Ответ №2:

это довольно простая функция. Я не добавлял комментариев, чтобы вы могли прочитать код и попытаться понять, как он работает и почему.

 'use strict';

const myList = [0, 2, 'Hello', 7, 'TO', '---'];

const myDelimiter = " ";

const myNth = 3;

console.log(nameIt(myList, myDelimiter, myNth));

function nameIt(list, delimiter, nth) {
    let delimiterCounter = 1;
    let finalString = "";

    for (let element of list) {
        finalString  = element.toString();

        if (nth === delimiterCounter) {
            delimiterCounter = 1;

            finalString  = delimiter;
        } else {
            delimiterCounter  ;
        }
    }

    return finalString;
}