Как сделать из массива другой массив(с измененными данными), или строку с разными разделителями
К примеру дан массив: ['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(''));