Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/07/2012, 19:53
Avatar de Aijoona
Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años
Puntos: 343
Respuesta: array con {llave:valor,llave:valor}

Los arrays en JS únicamente pueden contener keys númericas, caso contrario estás asignando properties al objeto y no elements al array.

Con respecto a tu problema, no entendí bien (y tampoco leí el link), me agarraste de buen humor, post-cervezas, por lo cual te adjunto código (no testeado) de ejemplo potencialmente relacionado a tu problema (puede que no tenga nada que ver):

Código Javascript:
Ver original
  1. var app = {};
  2.  
  3. app.places = [
  4.     {
  5.         country:"España",
  6.         capital:"Madrid",
  7.         continent:"Europa"
  8.     },
  9.     {
  10.         country:"Japón",
  11.         capital:"Tokio",
  12.         continent:"Asia"
  13.     },
  14.     {
  15.         country:"Francia",
  16.         capital:"Paris",
  17.         continent:"Europa"
  18.     }
  19. ];
  20.  
  21. app.deleteByCondition = function(key, value) {
  22.     for(var i = 0; i < app.places.length; i++) {
  23.         if(app.places[i][key] == value) {
  24.             app.places.splice(i, 1);
  25.             i--;
  26.         }
  27.     }
  28. };
  29.  
  30. app.deleteByCountry = function(country) {
  31.     app.deleteByCondition('country', country);
  32. };
  33.  
  34. app.deleteByCapital = function(capital) {
  35.     app.deleteByCondition('capital', capital);
  36. };
  37.  
  38. app.deleteByContinent = function(continent) {
  39.     app.deleteByCondition('continent', continent);
  40. };
  41.  
  42. app.get = function(key, value) {
  43.     for(var i = 0; i < app.places.length; i++) {
  44.         if(app.places[i][key] == value) {
  45.             return app.places[i];
  46.         }
  47.     }  
  48.     return null;
  49. };
  50.  
  51. app.getByCountry = function(country) {
  52.     return app.exists('country', country);
  53. };
  54.  
  55. app.getByCapital = function(capital) {
  56.     return app.exists('capital', capital);
  57. };
  58.  
  59. app.getByContinent = function(continent) {
  60.     return app.exists('continent', continent);
  61. };
  62.  
  63. app.countryExists = function(country) {
  64.     return app.exists('country', country) !== null;
  65. };
  66.  
  67. app.capitalExists = function(capital) {
  68.     return app.exists('capital', capital) !== null;
  69. };
  70.  
  71. app.continentExists = function(continent) {
  72.     return app.exists('continent', continent) !== null;
  73. };

Con eso, debería serte sencillo verificar y eliminar registros de la colección con una semantica más acorde a tu lógica de negocios.
__________________
blog | @aijoona