使用 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?

js数组

学习Javascript

使用 JavaScript 转换数组

如何使用Javascript将简单数组转换为三维数组(矩阵)

如何使用javascript将字符串数组转换为布尔值? [复制]