gpt4 book ai didi

javascript - 将具有一个属性的对象转换为父属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:31:40 27 4
gpt4 key购买 nike

我已经从 xml 转换了 javascript 对象,这是对象的例子:

{
name: 'current name',
attr1: 'attribute1',
attr2: 'attribute2',
address: {
name: 'name1',
value: {
value: '12'
},
attr3: {
name: 'no name',
attr4: {
attr4: 'attribute4'
}
}
},
price: {
price: '500'
},
in_house: {
in_house: '2'
}
}

我如何转换成这个:

{
name: 'current name',
attr1: 'attr1',
address:{
name: 'name1',
value: '12',
attr3: {
name: 'no name',
attr4: 'attribute3'
}
}
attr2: 'attr2',
price: 500,
in_house: 2
}

需要将所有无用的对象转化为属性,例子 { 价格 : 价格:'500' } 进入 {价格:'500'}

最佳答案

您可以对键及其值使用迭代、递归方法。

function moveUp(object, last) {
var keys = Object.keys(object);

if (keys.length === 1 && keys[0] in last) {
last[keys[0]] = object[keys[0]];
if (last[keys[0]] !== null && typeof last[keys[0]] === 'object') {
moveUp(last[keys[0]], last);
}
return;
}
keys.forEach(function (k) {
if (object[k] !== null && typeof object[k] === 'object') {
moveUp(object[k], object)
}
});
}

var object = { name: 'current name', attr1: 'attribute1', attr2: 'attribute2', address: { name: 'name1', value: { value: '12' }, attr3: { name: 'no name', attr4: { attr4: 'attribute4' } } }, price: { price: '500' }, in_house: { in_house: '2' }, test: { test: { test: { banane: 42 } } } };

moveUp(object);

console.log(object);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 将具有一个属性的对象转换为父属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39804323/

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