不重建索引的办法

var ar = [1, 2, 3, 4, 5, 6];
delete ar[4]; // delete element with index 4
console.log( ar ); // [1, 2, 3, 4, undefined, 6]
alert( ar ); // 1,2,3,4,,6
ar.length; //6, 删除完全不影响.
for (var i = ara.length - 1; i > -1; i--) {
delete ara[i];
}//全删光了也没用, length依旧.

//用foreach去遍历就特别合理了. 可以忽略那些没有的元素.
array.forEach(function(element) {
  console.log(element);
});

重建索引的办法就是splice了.

var index = array.indexOf(item);
if (index !== -1) array.splice(index, 1);

//filter也是重建索引的, 甚至说他其实重建了一个新的数组.
var filteredAry = ary.filter(e => e !== 'seven')

顺便说一句 delete是一个运算符, 可以理解为+-*/的一部分. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators