Javascript 将对象的属性转换为逗号分隔的字符串
我有一个解决方案,迭代每个对象键及其值,但对我来说似乎有点“黑客”。是否有人使用ES6、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": {
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()
制作一些东西,但我不知道它是否“更干净”