使用 JavaScript 转换数组
Posted
技术标签:
【中文标题】使用 JavaScript 转换数组【英文标题】:Transform array using JavaScript 【发布时间】:2017-10-06 03:02:45 【问题描述】:我的数组中有如下值:
var chartData=[["web",0],["file",2],["desktop",2],["laptop",17]]
我需要把这个数组转换成
var chartData= [["Web","file","desktop","laptop"],[0,2,2,17]]
如何为此转换编写适当的 javascript 函数。 到目前为止,我使用了一个 for 循环:
for (var i = 0; i < 5; i++)
for(j=0;j<i;j++)
chartData[i][j] = chartData[j][i];
【问题讨论】:
到目前为止你尝试了什么? 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。 gerado,是的,我确实有外部方括号,我也使用过 for loopsfor (var i = 0; i @DeepshikhaSharma,看看我的回答。 将您的代码添加到不在 cmets 中的问题 【参考方案1】:看看
const chartData = [["web",0],["file",2],["desktop",2],["laptop",17]];
function convert(array)
const length = array.reduce((a, b) => a.length > b.length ? a : b).length;
const result = [];
for (var i = 0; i < length; i++)
result[i] = array.map(el => el[i]);
return result;
console.log(convert(chartData));
【讨论】:
【参考方案2】:这样就可以了:
var chartData=[["web",0],["file",2],["desktop",2],["laptop",17]];
var outData = [];var a1Out = [];var a2Out=[];
for(i=0;i<chartData.length;i++)
var a1 = chartData[i][0]; //first array value
var a2 = chartData[i][1]; // second array value
//save them in seperate arrays
a1Out.push(a1);
a2Out.push(a2);
outData.push(a1Out);
outData.push(a2Out);
console.log(outData); //final array
working fiddle
【讨论】:
以上是关于使用 JavaScript 转换数组的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 python 中将包含 JavaScript 图表的 html 文件转换为 PDF?