所以我用 ES6 编写了这段代码
let documents = somedata;
if (documents.length >= 0) {
documents.map( (item, index) => {
state[item.type].push(item);
});
this.setState({documents: state});
}
我正在尝试优化它,我是否需要在声明映射之前检查数组的长度,什么是处理错误检查的更好方法?
比如有没有不检查长度的例子是不好的?
如果变量不是数组,它会失败,但除此之外还有什么情况我应该担心吗?
最佳答案
不,[].map(item => item) 只会返回 [],所以如果长度为 0 就没问题。
如果你只是检查你的变量是否是一个数组,你可以引用这个问题: How do you check if a variable is an array in JavaScript?
这也可能由于以下任何原因而失败
- 您的数组元素之一不是具有“类型”属性的对象
- 您的状态对象没有与 item.type 值对应的键
- 如果 state[item.type] 值不是数组(因此没有 push 方法)
此外,如果您不使用 map 的结果,请不要使用 map ,使用 Array.forEach() .
关于javascript - 在javascript中映射之前是否需要检查数组的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52769487/