将Javascript对象转换为对象数组以在d3.js中使用



我正在将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],
}));

相关内容

  • 没有找到相关文章

最新更新