2
你好,我想创建基于该数据枢轴阵列:如何将数组转换成旋转阵列JS
var data = [
{model_num : "ABC", revision : "AA", value : 31.25, treatment : 'Pressure' },
{model_num : "ABC", revision : "AA", value : 31.25, treatment : 'Gas' },
{model_num : "ABC", revision : "AA", value : 33.12, treatment : 'Temp' },
{model_num : "ABC", revision : "AA", value : 25.87, treatment : 'Current' },
{model_num : "ABC", revision : "AB", value : 26.63, treatment : 'Pressure' },
{model_num : "ABC", revision : "AB", value : 26.00, treatment : 'Gas' },
{model_num : "ABC", revision : "AB", value : 23.75, treatment : 'Temp' }
];
我想最终的结果看起来是这样:
var data=[{model_num : "ABC", revision : "AA", "Pressure":31.25, "Gas":31.25, "Temp": 33.12,"Current":25.87 },{model_num : "ABC", revision : "AB", "Gas":26.00,"Temp":23.75}]
我有以下代码:
var arr2d2 = []; //new array that is going to contain the merged values.
// console.log(arr2d2.length);
var arr2d2test = [];
var counter=0;
data.map(function(element){
//console.log(counter); // this will run 7 times the size of data
var outerElement = element; //element is equivalent to one array for example: {model_num : "ABC", revision : "AA", value : 31.25, treatment : 'Pressure' } all 7 in this example
//console.log(element);
var found = false; //set initially to false. If not found add element to the new array.
//console.log(arr2d2.length);
for (var i = 0; i < arr2d2.length; i++)
{
//console.log(i);
//console.log(arr2d2[i].model_num);
if (arr2d2[i].model_num == outerElement.model_num && arr2d2[i].revision == outerElement.revision)
{
arr2d2[i][outerElement['treatment']] = outerElement['value'];
found = arr2d2[i]; // save the element.
// console.log('found variable' + JSON.stringify(found));
break; //stop the loop
}
};
if (found)
{
//arr2d2test.push(found.model_num);// console.log(found.model_num);
if (found.value != outerElement.value)
{
// console.log('TRUE');
found.value.push(outerElement.value); //push the age to the new value.
}
}
else
{
outerElement.value = [outerElement.value]; //convert age to an array, like you specified.
// console.log(outerElement);
arr2d2.push(outerElement); //not found yet. push element;
}
counter++;
});
//console.log(arr2d2test);
console.log(arr2d2);
console.log(JSON.stringify(arr2d2));
当我控制台登录我arr2d2我得到如下:
[{"model_num":"ABC","revision":"AA","value":[31.25,33.12,25.87],"treatment":"Pressure","Gas":31.25,"Temp":33.12,"Current":25.87},{"model_num":"ABC","revision":"AB","value":[26.63,26,23.75],"treatment":"Pressure","Gas":26,"Temp":23.75}]
这是接近,但不完全是我所需要的。任何帮助将不胜感激。
感谢@Nenad是做正是我需要的:)! – cocopan