Javascript 将对象的属性转换为逗号分隔的字符串

Javascript 将对象的属性转换为逗号分隔的字符串,javascript,arrays,object,ecmascript-6,filter,Javascript,Arrays,Object,Ecmascript 6,Filter,我有一个解决方案,迭代每个对象键及其值,但对我来说似乎有点“黑客”。是否有人使用ES6、Object.values或其他方法有更好的解决方案 原始对象 metrics = { "credit": { "sum": false, "mean": false, "max": true, "min": true, }, "debit": {

我有一个解决方案,迭代每个对象键及其值,但对我来说似乎有点“黑客”。是否有人使用ES6
Object.values
或其他方法有更好的解决方案

原始对象

metrics = {
  "credit": {
    "sum": false,
    "mean": false,
    "max": true,
    "min": true,
  },
  "debit": {
    "sum": false,
    "mean": true,
    "max": true,
    "min": false,
  },
  ...
}
假装的字符串

credit:max,credit:min,debit:mean,debit:max
当前解决方案

let string = []

Object.keys(metrics).forEach(column => {
  Object.keys(metrics[column]).forEach(metric => {
    if (metrics[column][metric]) { 
      string.push(`${column}:${metric}`)
    }
  })
})


string = string.join(',')
谢谢。

使用时需要了解并提供待处理参考。。。此处
指标
。。。就一次。因此,所有剩余代码的实现不需要对该引用的名称进行假设,而只需要对该数据引用的结构以及如何使用它进行假设。。。
const度量={
“信贷”:{
“sum”:false,
“中庸”:错误,
“max”:没错,
“敏”:没错,
},
“借方”:{
“sum”:false,
“中庸”:没错,
“max”:没错,
“min”:错,
},
};
console.log(
对象
.条目(指标)
.reduce((列表,[键,对象])=>[
列表
对象
.条目(obj)
.reduce((列表,[值,bool])=>
(bool&&[…list,`${key}:${value}`])列表,
[]
)
],[])。连接(“,”)
);

作为控制台包装{最小高度:100%!重要;顶部:0;}
您有什么解决方案?为什么您认为它是“hacky?”如何确定“transformed”字符串?你到底想做什么?我已经更新了问题。我对每个对象进行迭代,并将其推送到一个新数组中,该数组稍后将被加入。提前谢谢@RocketHazmat。你的东西怎么了?你的代码给出正确答案了吗?你能分享你的代码吗?@RocketHazmat我分享了问题中的代码。你的代码有什么问题?在我看来,它很好,并为您提供正确的输出。我想你可以用
.filter()
/
.map()
制作一些东西,但我不知道它是否“更干净”