为了账号安全,请及时绑定邮箱和手机立即绑定

有个小伙伴问我一个问题,解决了倒是,不知道为什么会出现

有个小伙伴问我一个问题,解决了倒是,不知道为什么会出现

慕雪6442864 2018-09-10 09:14:00
 $(function(){        var arr1 = [             {name: 'leo1', securityId: '1'},             {name: 'leo2', securityId: '2'},             {name: 'leo3', securityId: '3'},             {name: 'leo4', securityId: '4'}         ];        var id = '1';        function getId(arr, id) {                     var len = arr.length;            for(var i = 0; i < len; i++) {                         if (id == arr[i].securityId) {                     arr.splice(i,1);                 }             }            return arr;         }         getId(arr1, id);        console.log(getId(arr1, id));                 })我的解决办法是在for循环里面再次循环对象      function getId(arr, id) {            var len = arr.length;                   for(var i = 0; i < len; i++) {                for(var j in arr[i]){                           if(arr[i][j]==id){                       arr.splice(i,1)                     }                 }             }                 return arr;         }想知道为什么会出现类型报错
查看完整描述

1 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

for循环里边,len=4,但是i=0的时候,arr被删除了一个元素,这个时候arr的长度变成3,而for循环最后还是会遍历到arr[3],但是这个时候arr只有三个元素,arr[3]是第四个元素,不存在任何属性,所以报错了


查看完整回答
反对 回复 2018-10-19
  • 1 回答
  • 0 关注
  • 393 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信