javascriptarraysobject

Object is given: let obj = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}; Convert the keys of this object in one array, and the values in another


I have a problem with converting object keys and values in two separate arrays.

Please see my code below:

let obj = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5};
let arr1=[];
let arr2=[];
for( key in obj){
  for(let i=0; i<5;i++){
    arr1[i]=key
    arr2[i]=obj[key]
  }
}
 console.log(arr1)
 console.log(arr2)

I have wrong answer: [ 'e', 'e', 'e', 'e', 'e' ] [ 5, 5, 5, 5, 5 ]


Solution

  • Why not use Object.keys and Object.values:

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Object/values

    If you wanted to use your code:

    let obj = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5};
    let arr1=[];
    let arr2=[];
    for(let key in obj){
      arr1.push(key);
      arr2.push(obj[key]);
    }
     console.log(arr1)
     console.log(arr2)