Не используйте delete , так как он не удаляет элемент из массива, он только устанавливает его как неопределенный, который затем не будет корректно отражаться на длине массива.
Если вы знаете ключ, вы должны использовать сращивание , т. Е.
myArray.splice(key, 1);
Для кого-то в положении Стивена вы можете попробовать что-то вроде этого:
for (var key in myArray) {
if (key == 'bar') {
myArray.splice(key, 1);
}
}
или
for (var key in myArray) {
if (myArray[key] == 'bar') {
myArray.splice(key, 1);
}
}