优化JavaScript
有人能帮我找到优化以下代码的最佳方法吗?因为当我搜索上千条记录时,这需要很长时间优化JavaScript,javascript,arrays,angular,performance,Javascript,Arrays,Angular,Performance,有人能帮我找到优化以下代码的最佳方法吗?因为当我搜索上千条记录时,这需要很长时间 var arr =[ { children:[ { children:[ { children:[ { name:'XYZZZZZ' }
var arr =[
{
children:[
{
children:[
{
children:[
{
name:'XYZZZZZ'
}
]
}
]
}
]
}
];
let list = [];
//Calculate column list
arr.forEach((obj0) => {
if (obj0.hasOwnProperty('children')) {
if (obj0.children.length > 0) {
let objchid1 = obj0.children;
objchid1.forEach((obj1) => {
if (obj1.hasOwnProperty('children')) {
if (obj1.children.length > 0) {
let objchid2 = obj1.children;
objchid2.forEach((obj2) => {
if (obj2.hasOwnProperty('children')) {
if (obj2.children.length > 0) {
let objchid3 = obj2.children;
objchid3.forEach((obj3) => {
if (obj3.name !== 'james') {
console.log('IN THREEE', obj3.name);
list.push(obj3.name);
}
});
}
}
});
}
}
});
}
}
});
我已经尝试了很多搜索,但没有运气,提前谢谢你
myElementsToIndexObject
)myElementsToIndexObject
)如果数据来自JSON字符串,则可以在解析过程中进行搜索:
var list=[],json='[{“child”:[{“child”:[{“child”:[{“name”:“xyzzzz”}]}]'
var arr=JSON.parse(JSON,(key,val)=>(key=='name'&&list.push(val,val))
console.log(列表)
console.log(arr)
如果数据来自JSON字符串,则可以在解析过程中进行搜索:
var list=[],json='[{“child”:[{“child”:[{“child”:[{“name”:“xyzzzz”}]}]'
var arr=JSON.parse(JSON,(key,val)=>(key=='name'&&list.push(val,val))
console.log(列表)
console.log(arr)
我建议您考虑创建递归函数递归函数看起来会更干净,但所有处理步骤都将保持不变,如果您多次运行此函数(如搜索工具),我怀疑性能会有多大变化应考虑存储results@charlietfl即使这只会让它看起来更好,这仍然是一种优化。但是递归的好处是,您只检查是否有子项
,而不管它是否为24深……与forEach循环的24个选项卡列相比,递归将在一行中检查24深。删除不必要的if(obj.children.length>0){
condition我建议您考虑创建一个递归函数递归函数看起来会干净很多,但所有的处理步骤都将是一样的,如果您多次运行此函数(例如搜索工具),我怀疑性能会有多大变化应考虑存储results@charlietfl即使这只会让它看起来更好,这仍然是一种优化。但递归的好处是,你只检查是否有子项
,而不管它是否是24深的……递归将在一行中检查24深,而不是forEach loo的24个选项卡列ps.如果(obj.children.length>0){条件,则删除不必要的if(obj.children.length>0){