在最终的单个数组中使用分隔符合并多个相同长度的不同数组值?

问题描述 投票:-3回答:4

我有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'];

如何将所有数组值合并到一个带有管道的单个数组中 - | - delimiter?

结果:

final_arr = [
  'title 1|description 1|link 1',
  'title 2|description 2|link 2',
  'title 3|description 3|link '
]
javascript jquery arrays
4个回答
2
投票

尝试

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

我们在这里使用标准的js'工具'和良好的文档:arrow functionmaptemplate literals以及每个数组具有相同数量元素的事实

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

1
投票

听起来像课堂作业...... :)

 var A=[];

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

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

 }

这是一个很好的基本解决方案,你的老师不能拒绝!


0
投票

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)

0
投票

你可以减少数组。

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);
© www.soinside.com 2019 - 2024. All rights reserved.