gpt4 book ai didi

javascript - 在嵌套对象上加入 (';' )

转载 作者:行者123 更新时间:2023-11-29 10:01:16 26 4
gpt4 key购买 nike

我正在尝试将对象中的所有值连接到分号分隔,如果对象只是一个级别,它工作正常:

obj = { 
name: "one"
additionalInfo: "hello"
...
};

Object.values(obj).join(';')

结果:一个;你好

但是如果对象是嵌套的:

obj = { 
name: "one"
additionalInfo: {
description: "hello",
...
}
};

Object.values(obj).join(';')

结果:一个;[对象对象]

除了name之外的其余值当然是[object Object]。我如何也加入 2 级值?

我想要的结果是:

one;hello

最佳答案

您可以采取递归方法,确保在连接对象的整个级别的值之前转换任何嵌套对象:

function joinObjectValues(obj, delimiter = ";") {
return Object.values(obj)
.map(val => {
//convert any objects recursively
if (typeof val === "object") {
return joinObjectValues(val, delimiter);
}

return val;
})
.join(delimiter)
}

let objOneLevel = {
name: "one"
};

let objTwoLevels = {
name: "one",
additionalInfo: {
description: "hello",
}
};

let objThreeLevels = {
name: "one",
additionalInfo: {
description: "hello",
other: {
customField: "world"
}
}
};


console.log(joinObjectValues(objOneLevel))
console.log(joinObjectValues(objTwoLevels))
console.log(joinObjectValues(objThreeLevels))

关于javascript - 在嵌套对象上加入 (';' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56807840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com