如何将字符串数组映射到多维数组

我正在尝试通过将字符串数组映射到2D数组来创建多维数组。

var dataFieldArray = ["LegPenetration","Temperature"];

var multidimensionalArray = [[{"x": 0,"y": 0},{"x": 10,"y": 20},{"x": 20,"y": 30},{"x": 30,"y": 40},{"x": 40,"y": 50}],[{"x": 0,"y": 200},"y": 250},"y": 400},"y": 450}]]

预期输出应如下:

var data = [[{"field": LegPenetration,"x": 0,{"field": LegPenetration,"x": 10,"x": 20,"x": 30,"x": 40,[{"field": Temperature,{"field": Temperature,"y": 450}]]

在下面的代码中,我将xValueArray和yValueArray映射在一起,以得到如上所示的结果2D数组。我尝试过以相同的方式映射dataField数组,但无济于事。任何帮助将不胜感激!

const yValueArray = [[0,20,30,40,50],[0,200,250,400,450]];
const xValueArray = [0,10,40];

const data = yValueArray.map(data =>
  data.map((d,i) => ({
    x: xValueArray[i],y: d
  }))
);
nh8341 回答:如何将字符串数组映射到多维数组

听起来您想添加field属性。这是一种不使用ES5级语言功能和Object.assign(ES2015,但可填充)的原始对象的修改方法:

var result = multidimensionalArray.map(function(array,index) {
    var field = dataFieldArray[index];
    return array.map(function(object) {
        return Object.assign({},object,{field: field});
    });
});

实时示例:

var dataFieldArray = ["LegPenetration","Temperature"];

var multidimensionalArray = [[{"x": 0,"y": 0},{"x": 10,"y": 20},{"x": 20,"y": 30},{"x": 30,"y": 40},{"x": 40,"y": 50}],[{"x": 0,"y": 200},"y": 250},"y": 400},"y": 450}]];

var result = multidimensionalArray.map(function(array,{field: field});
    });
});

console.log(result);
.as-console-wrapper {
    max-height: 100% !important;
}

或具有ES2015和ES2018功能:

const result = multidimensionalArray.map((array,index) =>
    array.map(object => ({...object,field: dataFieldArray[index]}))
);

实时示例:

const dataFieldArray = ["LegPenetration","Temperature"];

const multidimensionalArray = [[{"x": 0,"y": 450}]];

const result = multidimensionalArray.map((array,field: dataFieldArray[index]}))
);

console.log(result);
.as-console-wrapper {
    max-height: 100% !important;
}

本文链接:https://www.f2er.com/3168392.html

大家都在问