Tengo problemas para borrar this
(un 'evento' específico) del siguiente objeto javascript, cuando this
es de un jquery .each()
loop.Eliminar esto de un objeto javascript en jQuery .each()
WeatherData:
{
"events":{
"Birthday":{
"type":"Annual",
"date":"20120523",
"weatherType":"clouds",
"high":"40",
"low":"30",
"speed":"15",
"direction":"0",
"humidity":"0"
},
"Move Out Day":{
"type":"One Time",
"date":"20120601",
"weatherType":"storm",
"high":"80",
"low":"76",
"speed":"15",
"direction":"56",
"humidity":"100"
}
},
"dates":{
"default":{
"type":"clouds",
"high":"40",
"low":"30",
"speed":"15",
"direction":"0",
"humidity":"0"
},
"20120521":{
"type":"clear",
"high":"60",
"low":"55",
"speed":"10",
"direction":"56",
"humidity":"25"
}
}
}
Ésta es una versión encogida del bucle .each()
:
$.each(weatherData.events, function(i){
if(this.type == "One Time"){
delete weatherData.events[this];
}
})
que podría ser mejor, simplemente vaciando weatherData.events (weatherData.events = {}), en lugar de tratar de eliminarlo. De acuerdo con uno de los autores de v8 en una entrevista que escuché recientemente, cuando borras el miembro de un objeto, el objeto se convierte de nuevo en un hash, luego vuelve a un objeto, mientras que la reasignación dentro de un objeto no tiene el objeto-> hash -> penalizaciones de rendimiento del objeto. – BrianFreud
Eso suena como un buen consejo. Haría eso si no estuviera tratando de guardar algunos de los contenidos. Solo borré ciertos eventos, no todos. Actualizaré mi publicación para ser más específica en la descripción de apertura. – fishpen0