关于数组的问题
数组使用splice删除其中的元素时出现了奇怪的现象问题代码:
let menu = app.globalData.menu; let len = menu.length; console.log(menu); console.log(len) for ( var i = 0; i < len; i++) { if (menu[i].num == 0) { console.log(i); app.globalData.global_flag = 1; menu.splice(i, 1); in_menu.splice(i,1); len=menu.length; i-=1;
} } |
定义的数组menu中含有两项,打印menu及其长度len后,执行循环删除掉menu中的部分元素(其中有一个会被删除)打印结果为
长度:2即我在使用splice删除数组中的元素前打印含两个元素的数组,出来的结果只有一项,而其长度为2在以上代码中只去掉含splice那两句话打印结果为
长度:2即再不使用splice后打印结果无误所以很疑惑,为什么在使用splice时,删除数组元素前打印含两个元素的数组,结果只有一项???