Eri*_*rik 32 javascript undefined
给出以下数组:
var arr = [undefined, undefined, 2, 5, undefined, undefined];
Run Code Online (Sandbox Code Playgroud)
我想获得哪些元素的计数的定义(即:那些不 undefined).除了遍历数组之外,还有一个很好的方法吗?
ZER*_*ER0 57
在最近的浏览器中,您可以使用过滤器
var size = arr.filter(function(value) { return value !== undefined }).length;
console.log(size);
Run Code Online (Sandbox Code Playgroud)
另一种方法,如果浏览器支持数组的indexOf:
var size = arr.slice(0).sort().indexOf(undefined);
Run Code Online (Sandbox Code Playgroud)
如果对于荒谬,你在数组中只有一位数的元素,你可以使用那个肮脏的技巧:
console.log(arr.join("").length);
Run Code Online (Sandbox Code Playgroud)
您可以使用几种方法,但最后我们必须看看它是否真的值得做而不是循环.
tas*_*oor 10
数组length不是数组中元素的数量,它是最高的index + 1.length仅当连续索引中存在有效元素时,属性才会报告正确的元素计数.
var a = [];
a[23] = 'foo';
a.length; // 24
Run Code Online (Sandbox Code Playgroud)
这样说,没有使用任何形式的循环就无法从计数中排除未定义的元素.
| 归档时间: |
|
| 查看次数: |
120031 次 |
| 最近记录: |