Necesito objetar al servidor pero necesito formatear
ejemplo de objeto ->
let obj = { id: 1, title: title }Esto está bien, pero cada vez que tengo una propiedad diferente
Necesito formatear si obtuve la propiedad del nombre , necesito reemplazar el título en lugar
si obtuve el nombre, necesito formatear el objeto
let obj = { id: 1, name: name }El título de la propiedad lo obtuve siempre, pero cuando obtuve el nombre, necesito reemplazarlo...
estoy intentando con:
if(name){ return name: name } else { return title: title }Puedes crear una función para hacerlo:
function createObj(id, s, isName = false){ let obj = {id: id}; if(isName){ obj.name = s; } else { obj.title = s; } return obj; }A continuación, puede llamar a esa función de esta manera:
let o1 = createObj(1, 'Person', true); // {id: 1, name: 'Person'} let o2 = createObj(2, 'CEO', false); // {id: 2, title: 'CEO'} console.log(o1); // Outputs: {id: 1, name: 'Person'} console.log(o2); // Outputs: {id: 2, title: 'CEO'}Creo que puedes hacer esto con la hasOwnProperty(prop) .
Documentación: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
Echa un vistazo al código adjunto:
// consider a list of objects // some objects contain the property 'title' // while the rest of them have the property 'name' let objects = [ { id: 1, title: "it is title" }, { id: 2, name: "it is name" } ] // iterate through each object // and replace its 'name' property // with the 'title' property objects.forEach(obj => { // does object has the property 'name'? // if yes, replace it with the property 'title' if(obj.hasOwnProperty('name')){ // set value of the property 'title' obj.title=obj.name; // delete the property 'name' delete obj.name; } }) // log all objects for testing objects.forEach(obj => { console.log(obj.id, obj.title) })