У меня есть массив яваскрипта объектов, представляющих пользователей, например, так:Clean Метод Нормализация свойств объекта Javascript
[
{ userName: "Michael",
city: "Boston"
},
{ userName: "Thomas",
state: "California",
phone: "555-5555"
},
{ userName: "Kathrine",
phone: "444-4444"
}
]
Некоторые объекты содержат некоторые другие свойства, но не так. Мне нужен чистый способ обеспечить, чтобы ВСЕ объекты получали одни и те же свойства. Если они не существуют, я хочу, чтобы иметь пустое значение строки, например:
[
{ userName: "Michael",
city: "Boston",
state: "",
phone: ""
},
{ userName: "Thomas",
city: "",
state: "California",
phone: "555-5555"
},
{ userName: "Kathrine",
city: "",
state: "",
phone: "444-4444"
}
]
Update я должен был быть немного более конкретными. Я искал вариант, который будет обрабатывать эту ситуацию динамически, поэтому мне не нужно знать свойства раньше времени.
Для конкретного jQuery параметр $.extend()
является хорошим, но будет работать, только если вы знаете ВСЕ свойства раньше времени.
Некоторые упомянули, что это, вероятно, должно быть задачей на стороне сервера, и, хотя я обычно согласен с этим, есть две причины, по которым я не обрабатываю это на стороне сервера: 1) это будет меньший объект JSON, если, скажем, 900 из 1000 объектов содержат только 1 из возможных 9 свойств. 2) необходимо добавить «пустые» свойства, чтобы удовлетворить утилиту JS, которую можно заменить в будущем тем, что не имеет значения, если некоторые свойства отсутствуют.
вы сделали попытку? – megawac
+1 на самом деле пытается что-нибудь, но также ... почему вы не можете просто очистить данные при их получении? – PlantTheIdea
Любое конструктивное предложение о том, как это сделать: создать объект объекта по умолчанию для вашего объекта: '{user:" ", city:" ", ...}', затем вызвать '.map' и расширить каждый элемент по умолчанию – megawac