我正在做一个 React 项目,我需要在不改变原始数组的情况下过滤对象数组
const array = [{
name: 'bar',
children: [{
name: 'foo',
children: [{
name: 'baz123',
}, {
name: 'baz',
}]
}]
}, {
name: 'shallowKey'
}, {
name: 'abc'
}];
例如,我只想过滤关注的对象及其子对象。
这是 jsfiddle
function filterData(data) {
var r = data.filter(function(o) {
if (o.children) o.children = filterData(o.children);
return o.name.length === 3;
})
return r;
}
我从一个 stackoverflow 问题中尝试了该功能,但是有没有一种方法可以在不改变数据的情况下使用相同的功能。谢谢
最佳答案
如果对象中没有涉及任何原型(prototype)或函数,一种简单的复制方法是将原始字符串化并将其解析回对象
var r= JSON.parse(JSON.stringify(data)).filter(...
关于javascript - 在不改变原始数组的情况下过滤 javascript 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48466262/