#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;
}