如何在对象构造函数中使用Map数组函数

时间:2018-03-22 15:13:27

标签: javascript arrays

如何使用map函数在数据集下拥有3个数组,而不是另一个名为“label”的对象。当我尝试在'label'之前放置map函数时,就在构造函数中的'dataset'之后,我得到了关于意外''的奇怪错误。点等。

预期输出

{
  colors: blue,
  datasets: [
    {
      label: 'car',
      type: 'line',
      data: '1'
    },
    {
      label: 'bus',
      type: 'line',
      data: '5'
    },
    {
      label: 'train',
      type: 'line',
      data: '10'
    }
  ]
}

function Constructor(colors, label, type, data) {
  this.colors = colors;
  this.label = label;
  this.type = type;
  this.data = data;

  this.mainData = {
    colors: colors,
    datasets: [{
      label: label.map((label, i) => ({
        type: type,
        data: data[i]
      }))
    }]
  }
};

var whyYouNoWork = new Constructor('blue', ['car', 'bus', 'train'], 'line', ['1', '5', '10']);

console.log(whyYouNoWork.mainData);

1 个答案:

答案 0 :(得分:2)

您可以使用函数map构建所需的输出:



function Constructor(colors, label, type, data) {
  this.colors = colors;
  this.label = label;
  this.type = type;
  this.data = data;

  this.mainData = { colors, datasets: label.map((label, i) => ( { label, type, data: data[i] } ) ) }
};

var whyYouNoWork = new Constructor('blue', ['car', 'bus', 'train'], 'line', ['1', '5', '10']);

console.log(whyYouNoWork.mainData);

.as-console-wrapper { max-height: 100% !important; top: 0; }