Delete the property of an object whose value is the longest text

0

Write a remove function, remove any property whose value is the longest text.

This is my breakthrough ...

function remove (num , obj){
  
  let myObject = {
   name:"Rodolfo",
   edad : 23,
   hobby:"ir al cine"
  }
  if(Object.values(myObject)> num){
     
      delete Object.key(myObject);
   }
    return myObject;
}

remove (8,myObject)

Because when the code is executed, do you mention that myObject is not defined?

    
asked by user889 21.06.2018 в 15:13
source

2 answers

0

This is a possible solution to your problem:

function removeAtributoConElTextoMasLargo(objeto){
   if(Object.keys(objeto)[0]){
      let masExtenso=Object.keys(objeto)[0];
      for(attr in objeto){
        if( typeof objeto[attr] ==='string'){
          if(objeto[masExtenso].length < objeto[attr].length){
            masExtenso=attr;
          }
        }
      }
      delete objeto[masExtenso];
    }
    return objeto;
}


function remover(valor){
  let myObject = {
     name:"Rodolfo",
     edad : 23,
     hobby:"ir al cine"
  };
  if(valor){
    myObject.name=valor;
  }
  console.log(myObject);
console.log(removeAtributoConElTextoMasLargo(myObject));
}
<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<input type="text" name="texto" id="texto" value="el nombre"/>
	<button onclick="remover(document.getElementById('texto').value)">Remover</button>
</body>
</html>
    
answered by 21.06.2018 в 16:06
0

The code should look like this:

let myObject = {};

function remove (num , obj){

myObject = {
name:"Rodolfo",
edad : 23,
hobby:"ir al cine"
}
if(Object.values(myObject)> num){

   delete Object.key(myObject);
}
return myObject;
}

remove (8,myObject)
    
answered by 21.06.2018 в 16:15