У меня есть массив, содержащий объекты.Каждый объект имеет поле идентификатора.Я хочу реализовать функцию, которая удаляет объект, указав идентификатор.Я использую .each из prototypejs в массиве для просмотра объектов и проверки идентификатора.Если оно совпадает, как я могу его удалить?Я попытался установить для объекта, возвращенного из .each, значение null, но с помощью FireBug я вижу, что объект остается неизменным в массиве.
РЕДАКТИРОВАТЬ: объекты в массиве могут, в свою очередь, содержать массивы с объектами, которые, возможно, потребуется удалить.Моя функция подходит для поиска объекта, который нужно удалить, и я использую сплайс для его удаления (используя счетчик).Мне кажется, что .each (и другие перечислители, такие как .reject) возвращают копию объекта.Если я установлю объект на ноль, то при проверке объект все еще находится в массиве.Как бы я возвратил ссылку на объект, который при значении null фактически будет работать с объектом в массиве, а не с копией?
Вот функция, функция deleteChild работает на том же принципе:1005 *
function removeControl(controlName) {
var counter = 0;
cont.each(function (existingControl) {
if (existingControl.id == controlName) {
existingControl.destroy();
cont.splice(counter, 1);
}
else { // not found, check control's children
existingControl.deleteChild(controlName);
}
counter++;
}, this);
}