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