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

bakd9h0s  于 2023-05-07  发布在  Java
关注(0)|答案(2)|浏览(118)

我正在将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]]

但是我仍然没有得到期望的输出。

nwlqm0z1

nwlqm0z11#

使用此代码:

Array.from(Object.entries(value) , d=>{
  return{
    d[0] : d[1]
  }
 })
kcugc4gi

kcugc4gi2#

你能做到的

let obj = {Metrics: 404, Asset: 492, B7: 84};

let arr = []

for(let item in obj){
  arr.push({[item]:obj[item]})
}

相关问题