Search code examples
javascriptarraysobjectjavascript-objects

How to convert object properties string to integer in javascript


I would like to know how to convert object properties string to integer in javascript. I have a obj, which if has property value is number string convert to number in javascript

var obj={
  ob1: {id: "21", width:"100",height:"100", name: "image1"},
  ob2: {id: "22", width:"300",height:"200", name: "image2"}
}


function convertIntObj (obj){
    Object.keys(obj).map(function(k) { 
            if(parseInt(obj[k])===NaN){
              return obj[k] 
            }
            else{
              return parseInt(obj[k]);
            }
        });
}

var result = convertIntObj(obj);

console.log(result)

Expected Output:

[
  {id: 21, width:100,height:100, name: "image1"},
  {id: 22, width:300,height:200, name: "image2"}
]

Solution

  • This should do the work:

    var obj = {
      ob1: {
        id: "21",
        width: "100",
        height: "100",
        name: "image1"
      },
      ob2: {
        id: "22",
        width: "300",
        height: "200",
        name: "image2"
      }
    }
    
    
    function convertIntObj(obj) {
      const res = {}
      for (const key in obj) {
        res[key] = {};
        for (const prop in obj[key]) {
          const parsed = parseInt(obj[key][prop], 10);
          res[key][prop] = isNaN(parsed) ? obj[key][prop] : parsed;
        }
      }
      return res;
    }
    
    var result = convertIntObj(obj);
    
    console.log('Object result', result)
    
    var arrayResult = Object.values(result);
    
    console.log('Array result', arrayResult)

    Click "Run code snippet" so see the result