检查一个数组是否包含除JavaScript之外的其他东西?
我有一个数组,最有可能总是看起来像:
[null, null, null, null, null]
有时这个数组可能会改变成类似于:
["helloworld", null, null, null, null]
我知道我可以使用for循环,但是有没有办法使用indexOf
来检查数组中是否有不等于null的东西。
我正在寻找像这样的东西:
var index = indexof(!null);
使用some
返回一个布尔值:
var arr = [null, 2, null, null]; var otherThanNull = arr.some(function (el) { return el !== null; }); // true
DEMO
在Chrome,Safari和Firefox(以及其他浏览器的未来版本)的最新版本中,可以使用findIndex()
查找第一个非null元素的索引。
var arr = [null, null, "not null", null]; var first = arr.findIndex( function(el) { return (el !== null); } ); console.log(first);
你可以使用Array.prototype.some
来检查是否有任何元素匹配一个函数:
var array = [null, null, 2, null]; var hasValue = array.some(function(value) { return value !== null; }); document.write('Has Value? ' + hasValue);
这是做的工作
var array = ['hello',null,null]; var array2 = [null,null,null]; $.each(array, function(i, v){ if(!(v == null)) alert('Contains data'); })