【发布时间】:2020-08-30 04:21:38
【问题描述】:
我正在使用一个将单值属性作为数组返回的 api。我想拥有它,这样如果数组中只有 1 个值,则该值应该是一个字符串而不是字符串数组。
我在下面创建了 sn-p,但我得到“超出最大调用堆栈大小”显然我处于一个循环中,但我不太确定如何摆脱它。关于如何递归映射对象并完成我下面的示例有什么建议吗?
const original = {
a: ['foo'],
b: ['bar'],
c:{
d:['baz'],
e:['buzz'],
f:{
g:['zip'],
h:['zap']
}
}
};
exampleResult = {
a:"foo",
b:"bar",
c:{
d:"baz",
e:"buzz",
f:{
g:"zip",
h:"zap"
}
}
}
function transformer(item){
return _.transform(original, (r, v, k) => {
if(typeof v ==="object"){
transformer(v[0])
}
if(Array.isArray(v)){
r[k] = v[0];
}
});
}
let result = transformer(original)
console.log(result);
【问题讨论】:
标签: javascript lodash