说我想有一个if语句来测试数组是否为空, 查找它,我发现除了array [0]之外没有其他方法可以检查,在像React和Angular这样的框架中,它会给出不存在的数组项错误。
let arr = [];
if (!arr[0]) {
arr.map(val=>{
return <div>{val.name}</div>
});
}
在此示例中,我希望它显示JSX,否则请不要显示任何JSX。但是这样做会引发错误。反正有这样做吗?最好没有任何外部库。
编辑:“在“要做”之后添加了“此””
答案 0 :(得分:4)
这将检查变量是否已定义以及是否包含任何内容(尽管在这种情况下,您可能不需要进行第一次检查):
return HailstoneNumbers(Num / 2);
此外,请不要忘记int hailstone(int i, int steps) {
steps++;
if(i == 1) return steps;
if(i % 2 == 0) return hailstone(i / 2, steps);
else return hailstone(i * 3 + 1, steps);
}
// main function
x = hailstone(num, 0);
答案 1 :(得分:1)
如果您甚至不确定变量是否是数组,这就是我要做的事情:
if (Array.isArray(arr) && arr.length) { /*...*/ }
对于您的特殊情况,您可能甚至不需要第二次检查,因为即使调用它们的Array为空,所有Array迭代器也不会运行一次。
示例:
const arr = [];
console.log(arr.map(Number));
console.log(arr.some(parseInt));
console.log(arr.every(parseInt));
console.log(arr.filter(Number));
如果arr
是一个数组,则任何方法都不会引发错误。