Я получаю данные в виде массива объектов, которые находятся в форме значения ключа. Как показано ниже:
"data": [
{
"groupBy": "InvalidAuth",
"count": 41
},
{
"groupBy": "InvalidAuthEmpty",
"count": 75
},
{
"groupBy": "InvalidAuthSQL",
"count": 75
},
{
"groupBy": "Unsecured",
"count": 75
}
]
Но моя идея здесь изменить его первоначальную форму и сделать ее такой, как показано ниже, означает, что ключ «count» должен быть «value», а ключ «groupBy» должен быть «name». Как изменить его программно, используя typescript или javascript:
data:[
{value:41, name:'InvalidAuth'},
{value:75, name:'InvalidAuthEmpty'},
{value:75, name:'InvalidAuthSQL'},
{value:75, name:'Unsecured'}
]
Поскольку оригинальная форма не работает с электронными картами. электронные диаграммы работают только со значением и формой имени.
Кто-нибудь может мне помочь?
Спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Возможно, это решит вашу проблему:
let newData = [];
for(let thisData of data){
newData.push({
value: thisData.count,
name: thisData.groupBy,
})
}
Вы можете использовать map, чтобы получить копию исходного массива с нужными именами свойств:
const data = [
{
"groupBy": "InvalidAuth",
"count": 41
},
{
"groupBy": "InvalidAuthEmpty",
"count": 75
},
{
"groupBy": "InvalidAuthSQL",
"count": 75
},
{
"groupBy": "Unsecured",
"count": 75
}
];
const data2 = data.map(x => ({
value: x.count,
name: x.groupBy
}));
console.info(data2);Вы можете просто использовать map и destructuring
const data = [{"groupBy": "InvalidAuth","count": 41},{"groupBy": "InvalidAuthEmpty","count": 75},{"groupBy": "InvalidAuthSQL","count": 75},{"groupBy": "Unsecured","count": 75}]
let op = data.map(({count:value,groupBy:name}) => ({name,value}))
console.info(op)@its4zahoor это называется Разрушение, оно не инкапсулирует его в объект, да, это вопрос выбора, даже если вы делаете это напрямую, тогда это тоже нормально
Вам нужно просто перебрать data array и переименовать существующие ключи и удалить старые.
var data= [
{
"groupBy": "InvalidAuth",
"count": 41
},
{
"groupBy": "InvalidAuthEmpty",
"count": 75
},
{
"groupBy": "InvalidAuthSQL",
"count": 75
},
{
"groupBy": "Unsecured",
"count": 75
}
]
data.forEach(function(elem){
elem.name =elem.groupBy;
elem.value =elem.count;
delete elem['groupBy'];
delete elem['count'];
});
console.info(data);
почему вы не использовали
dataнапрямую? зачем инкапсулировать его в obj? было бы хорошо без него.