首页 > 解决方案 > 这是处理空数组的最佳方法

问题描述

以下是将数组设置为空的两种方法:

方法一:

var arr = [2,3];
arr = [];
arr.map(x => {
  console.log(x);
})

方法二:

var arr = [2,3];
arr = null;
if(arr != null) {
  arr.map(x => {
    console.log(x);
  })
}

这两种方法都有效。但是,在为 Visualisations 处理大型数据集和复杂数组时,会发生许多事件,该数组会发生修改,我不确定该走哪条路。

编辑:对不起,我上面的解释很糟糕。下面是我在 d3 中展开/折叠树视图的树节点的代码,如下所示。在下面的代码中,如果在设置为 null 时setNodePositions()检查数组的长度d.children,则会引发错误。但是toggleChildren()如果你设置了d.children = []则不会引发错误。所以,我想知道选择一个而不是另一个可能会导致性能问题或以后出现一些不需要的行为。问题更多是为了获得有关该主题的一些知识。如果我设置d.children = []而不是将其设置为空,则代码有效。

function toggleChildren(d) {
    if(d.children) {
        d._children = d.children;
        d.children = null;
    } else if(d._children) {
        d.children = d._children;
        d._children = null;
    }      
    setNodePositions();
    render(plotter);
}

标签: javascript

解决方案


另一种方式可能是

let arr = [2, 3];
if(arr.length != 0){
    // do something
}

推荐阅读