Ответ 1
просто используйте delete
, но имейте в виду, что вы должны полностью прочитать, какие эффекты используют это:
delete object.index; //true
object.index; //undefined
но если бы я должен был использовать так:
var x = 1; //1
delete x; //false
x; //1
но если вы хотите удалить переменные в глобальном пространстве имен, вы можете использовать его глобальный объект, например window
, или используя this
в самой внешней области i.e
var a = 'b';
delete a; //false
delete window.a; //true
delete this.a; //true
http://perfectionkills.com/understanding-delete/
другой факт заключается в том, что использование delete в массиве не удаляет индекс, а только устанавливает значение undefined, что означает определенные структуры управления, такие как для циклов, вы все равно будете перебирать этот объект, когда дело доходит до массива вы должны использовать splice
, который является прототипом объекта массива.
Пример массива:
var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";
если я должен был сделать:
delete myCars[1];
результирующий массив будет:
["Saab", undefined, "BMW"]
но используя такой сплайс:
myCars.splice(1,1);
приведет к:
["Saab", "BMW"]