Как отключить элемент в массиве в javascript?

Как удалить строку "bar" из массива foo, чтобы "bar" не отображался в

for(key in foo){alert(key);}

Ответ 1

Не используйте удалить, так как он не удалит элемент из массива, он установит его как undefined, который затем не будет правильно отображаться в длине массива.

Если вы знаете ключ, вы должны использовать сращивание i.e.

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);
    }
}

Ответ 2

delete foo[key];

: D

Ответ 3

Важное примечание: массивы JavaScript не являются ассоциативными массивами, такими как те, с которыми вы могли бы работать с PHP. Если ваш "массив" - это строка, вы больше не работаете с содержимым массива. Ваш массив является объектом, и вы используете скобку для доступа к члену с именем < key name > . Таким образом:

var myArray = [];
myArray["bar"] = true;
myArray["foo"] = true;
alert(myArray.length); // returns 0.

потому что вы не добавили элементы в массив, вы только изменили строку myArray и члены foo.

Ответ 4

Если вы знаете имя ключа, просто выполните следующие действия:

delete array['key_name']

Ответ 6

Вот как я это сделаю

 myArray.splice( myArray.indexOf('bar') , 1)