w3resource

JavaScript: Get a copy of the object where the keys have become the values and the values the keys

JavaScript Object: Exercise-16 with Solution

Write a JavaScript function to get a copy of the object where the keys have become the values and the values the keys.

Sample Solution: -

HTML Code:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript function to get a copy of the object where the keys have become the values and the values the keys.</title>
</head>
<body>

</body>
</html>

JavaScript Code:

function invert_key_value(obj) {
    var result = {};
    var keys = _keys(obj);
    for (var i = 0, length = keys.length; i < length; i++) {
      result[obj[keys[i]]] = keys[i];
    }
    return result;
  }
function _keys(obj) 
  {
    if (!isObject(obj)) return [];
    if (Object.keys) return Object.keys(obj);
    var keys = [];
    for (var key in obj) if (_.has(obj, key)) keys.push(key);
    return keys;
  }
function isObject(obj) 
 {
    var type = typeof obj;
    return type === 'function' || type === 'object' && !!obj;
  }
console.log(invert_key_value({red: "#FF0000", green: "#00FF00", white: "#FFFFFF"}));

Sample Output:

{"#FF0000":"red","#00FF00":"green","#FFFFFF":"white"}

Flowchart:

Flowchart: JavaScript:- Get a copy of the object where the keys have become the values and the values the keys

Live Demo:

See the Pen javascript-object-exercise-16 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Previous: Write a JavaScript function to convert an object into a list of '[key, value]' pairs.
Next: Write a JavaScript function to check if an object contains given property.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Share this Tutorial / Exercise on : Facebook and Twitter

JavaScript: Tips of the Day

instance

class Calc {
	constructor() {
		this.count = 0 
	}

	increase() {
		this.count ++
	}
}

const calc = new Calc()
new Calc().increase()

console.log(calc.count)

We set the variable calc equal to a new instance of the Calc class. Then, we instantiate a new instance of Calc, and invoke the increase method on this instance. Since the count property is within the constructor of the Calc class, the count property is not shared on the prototype of Calc. This means that the value of count has not been updated for the instance calc points to, count is still 0.

Ref: https://bit.ly/2Hcpkm6