2016-09-21 73 views
1

如何检查数组中是否至少有一个元素? (我想验证一下这个数组是不是空的)如何检查多维数组中是否至少有一个元素? (傻基本Javascript问题)

对不起这个愚蠢的问题,我已经在Google上花了太多时间...(Google只会返回复杂的情况和解决方案,看起来我的问题也是如此简单。)。

编辑:好的,但会发生什么样的数组像[,, [] ,, [] ,,,]?为了我的目的,它应该被认为是空的。

编辑2:对不起,伙计们,为了混淆!起初,我甚至不知道我在找什么。谢谢你们!

+0

使用数组长度属性。如果它大于0,它有一个元素 –

+3

[检查数组是否为空或存在]的可能重复(http://stackoverflow.com/questions/11743392/check-if-array-is-empty-or-exists) – user2005218

+0

'array.length> 0 && array [0] .length> 0'(为你所有的维数重复) – Bergi

回答

1

这将满足您的新的要求:

function isEmpty(arr) { 
    if (!Array.isArray(arr)) { 
     return false; 
    } 

    return arr.every(isEmpty); 
} 

它的作用:与Array.prototype.every帮助它会检查每一个项目左边是一个空阵列。阵列孔自动跳过.every()

参考文献:

+0

这只适用于第二维,对吧?关于如何达到第三,第四或第五维的任何线索? – Emilio

+0

@Emilio它是递归的,可以在任何深度下工作。 'isEmpty([,,, [[],[] ,,,, [[[]]]] ,,,])// true' – zerkms

-1

你也可以在这里使用真实性。这可以帮助您同时检查未定义的内容。 []是falsy,所以你可以这样做:

var arr = []; 

if(!arr) { 
    ... arr is undefined or empty array 
} else { 
    ... arr has at least one value 
} 
+0

错误,'[]'是truthy。在您的浏览器控制台中试用。 – qxz

+0

这是不正确的。'[]'是真的,'[1]'也是 – dmonad

+0

奇数:[] == true是false –

相关问题