Как сделать из массива другой массив(с измененными данными), или строку с разными разделителями

К примеру дан массив: ['a','b','c']

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

Если элементов в массиве только 1, то преобразовать в строку:

['· a'] или же в строку '· a'

Если же элементов в массиве 2, то преобразовать в строку:

['· a,' , ' b'] или же в строку '· a, b'

Если же элементов в массиве больше 2, то:

['· a,' , ' b & ' , 'c'] или же в строку '· a, b & c'

Смог сделать через if/else, но мне кажется существует способ как-то это сделать через может join(). Подскажите как бы вы решили подобную задачу?


Ответы (1 шт):

Автор решения: ioprst

const zip = (a, b) => {
  minLen = Math.min(a.length, b.length);
  a = a.slice(0, minLen);
  b = b.slice(0, minLen);
  return a.map((k, i) => [k, b[i]])
}

sep = ['· ', ', ', ' & '];
lst = ['a', 'b', 'c'];
console.log(zip(sep, lst).map(v => v.join('')).join(''));

→ Ссылка