提问人:respectabiggle 提问时间:7/27/2023 更新时间:7/27/2023 访问量:9
JS - 对于嵌套对象的数组,每个对象都有不同的键,是否可以将每个对象复制到一个新对象,只复制非零值?
JS - For an array of nested objects, each object having different keys, is it possible to copy each to a new object, copying only non-zero values?
问:
我有一个包含许多嵌套对象的数组。
每个对象都具有非零值和零值的属性。
原始对象 1
{
pigs: 0,
water buffalo: 1
}
原始对象 2
{
horses: 1,
cows: 0,
magical: {
unicorns: { European: 0 },
centaurs: { Mongolian: 1 },
dragons: {
green: 2,
black: 0
}
}
}
所需的新对象 1
{
water buffalo: 1
}
所需的新对象 2
{
horses: 1,
magical: {
centaurs: { Mongolian: 1 },
dragons: {
green: 2
}
}
}
到目前为止的尝试:这适用于查找非零值,
for (let [i,x] of array.entries()) {
for (let [j, y] of Object.entries(z)) {
for (let [k, z] of Object.entries(y){
if (z != 0) {
console.log(z)
// newObj[j] = {}
// newObj[j][k] = z
// console.log(newObj)
}
}
}
}
...但是当我尝试将它们转换为新对象(注释掉的部分)时,它只保留了循环中最后一次迭代的对象端口。
{
magical: {
centaurs: { Mongolian: 1 },
dragons: {
green: 2
}
}
}
缺少的是 : { horses: 1 }
是否有一种通用的方法来(有条件地)过滤/映射嵌套对象,您事先不知道这些属性?
谢谢!!!
答: 暂无答案
评论