我正在将d3迁移到较新的版本7.6.1,现在我使用的版本是5.15,它有一个方法是d3.entries在7.6.1版本中已弃用。
据我所知,这是d3。Entries用于将对象转换为对象数组,例如-
chart.data = function(value,newName,newColor,sorted) {
varColor=newColor;
varSorted=sorted;
displayData = d3.entries(value); //version 5.15
console.log("-----");
console.log(displayData);
assignedName = newName;
return chart;
}
{Metrics: 404, Asset: 492, B7: 84} to [{'Metrics',404}, {'Asset': 492}, {'B7': 84}]
但是当我升级d3版本时,d3.entries()函数不存在,所以我使用Object.entries()-
chart.data = function(value,newName,newColor,sorted) {
varColor=newColor;
varSorted=sorted;
displayData = Object.entries(value); //version 7.6
console.log("-----");
console.log(displayData);
assignedName = newName;
return chart;
}
My Output is -
[['Metrics',404], ['Asset': 492], ['B7': 84]]
但是我仍然没有得到想要的输出。
使用以下代码:
Array.from(Object.entries(value) , d=>{
return{
d[0] : d[1]
}
})
你可以这样做
let obj = {Metrics: 404, Asset: 492, B7: 84};
let arr = []
for(let item in obj){
arr.push({[item]:obj[item]})
}
可以使用纯js
const displayData = Object.keys(rendered_data).map(k => ({
key: k,
value: rendered_data[k],
}));