Объединить несколько разных значений массива одинаковой длины с разделителем в конечный единый массив?

#javascript #jquery #arrays

#javascript #jquery #массивы

Вопрос:

У меня есть 3 разных массива одинаковой длины

 var title = ['title 1','title 2','title 3'];    
var description = ['description 1','description 2','description 3'];    
var link = ['link 1','link 2','link 3'];
  

Как я могу объединить все значения массива в один массив с помощью | разделителя канала?

Результат:

 final_arr = [
  'title 1|description 1|link 1',
  'title 2|description 2|link 2',
  'title 3|description 3|link '
]
  

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

1. Что-нибудь, что вы уже пробовали?

Ответ №1:

попробуй

 title.map((x,i) => `${x}|${description[i]}|${link[i]}`);
  

здесь мы используем стандартные «инструменты» js с хорошей документацией: функцию стрелки, литералы карты и шаблона и тот факт, что каждый массив имеет одинаковое количество элементов

 var title = ['title 1','title 2','title 3'];

var description = ['description 1','description 2','description 3'];

var link = ['link 1','link 2','link 3'];

var r = title.map((x,i) => `${x}|${description[i]}|${link[i]}`);

console.log(r);  

Ответ №2:

Звучит как назначение класса … 🙂

  var A=[];

 for(var i=0; i<title.length; i  ){

 A.push(title[i] '|' description[i] '|' link[i]);

 }
  

Это хорошее базовое решение, от которого ваш учитель не сможет отказаться!

Ответ №3:

Сделать с Array#map .На основе совпадения индексов

 var title = ['title 1','title 2','title 3'];
var description = ['description 1','description 2','description 3'];
var link = ['link 1','link 2','link 3'];

var res= title.map((a,b)=> a '|' description[b] '|' link[b]);
console.log(res)  

или Array#ForEach

 var title = ['title 1','title 2','title 3'];
var description = ['description 1','description 2','description 3'];
var link = ['link 1','link 2','link 3'];

var res =[];
title.forEach((a,b)=> res.push(a '|' description[b] '|' link[b]));
console.log(res)  

Ответ №4:

Вы могли бы уменьшить массивы.

 const
    title = ['title 1', 'title 2', 'title 3'],
    description = ['description 1', 'description 2', 'description 3'],
    link = ['link 1', 'link 2', 'link 3'],
    result = [title, description, link].reduce((a, b) => a.map((v, i) => v   '|'   b[i]));
     

console.log(result);