【问题标题】:Transform array using JavaScript使用 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 中的问题

标签: javascript multidimensional-array


【解决方案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

    【讨论】:

      猜你喜欢
      • 2020-06-30
      • 2010-10-14
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 2010-11-11
      相关资源
      最近更新 更多