您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

由数组构造函数创建的未定义数组上的forEach

由数组构造函数创建的未定义数组上的forEach

Array(5) 本质上等同于

var arr = []; 
arr.length = 5;

在javascript中,更改数组的长度不会为其数字属性设置任何值,也不会在数组对象中定义这些属性。因此,数字属性是不确定的,而不是具有不确定的值。您可以使用以下方法进行检查:

Object.keys(arr)

迭代javascript时会迭代数组的数字属性,因此,如果这些数字属性不存在,则没有任何要迭代的内容

您可以通过以下方法进行检查:

var arr = Array(5)

//prints nothing
arr.forEach(function(elem, index, array) {
    console.log(index);
});

arr[3] = 'hey'
//prints only 'hey' even though arr.length === 5
arr.forEach(function(elem, index, array) {
    console.log(index);
});

如下代码

var arr = [undefined, undefined];

创建和数组,length ===2并将 。

其他 2022/1/1 18:13:57 有361人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶