Skip to main content

Javascript Interview Question and Answer - 1

In this article we are going to discuss 2 javascript interview question and their answers.These questions are highly asked in the Javascript interviews.

Disclaimer: - You might have different solution working with all test cases for both the problems.

So lets discuss the first question.This question is to test your ability in terms javascript object knowledge and your logical thinking.

Q1. You have been given a nested object "Person" which has one of the property as "password".Write a generic function to change the value of all the "password" property to "*****". Object is nested and may contain other object with property "password" and so on. Here is a sample object.

var Person = {
     name: 'Alex',
     age : 40,
    password : 'abc',
    x : {
       name : 'Chris',
       password: 'abcd',
       y : {
          name : 'Mike',
          password: 'abcd',

Before we jump into the solution, I want you to try yourself. First try with single object and then with one more level of object and then try writing a generic function.

So here is the solution

1. function nestedObjectIteration( obj ) {
2.      for(var key in obj) {
3.        if( obj.hasOwnProperty('password') ) {
4.          obj['password'] = '*****';
5.        }
6.        if( typeof(obj[key]) == 'object' ) {
7.        nestedObjectIteration(obj[key])
8.      }
9.     }
10.  return obj;
11. }

So here I have written solution with recursion function(function which calls itself). We have looped through all the keys of the object and in line number 3 we are checking,if the property is 'password' we will change the value to '*****'.

In line 6, we are checking if its an object then we will call the same function, passing the object value.Finally we will return the obj.

Let now try to solve another problem.

Q. Write a program to count the occurrence of each character in a sentence.
Note: small letter and capital letter are treated different.i.e. 'P' and 'p' are treated as two different character.
So let say we have been given a sentence "himanshu is coding". Now we need to write a solution which can tell the occurrence of 'h', 'i','m'... so on.

All right so what should be the approach. First we need to have a datatype which can hold each character and there occurrence. In Java,people use hash map as a solution. Similar to hash map we have object in Javscript.

In the object we can store each character as a key and its occurrence as value.That means, we can actually return something like this {h: 2, i: 2, m: 1, a: 1, n: 1, …} as solution for the given sentence.So pause for a while and try writing the program.

Here we have the solution

1. var countStr = ( str ) => {
2.          let arr = str.split('');
3.          let obj ={};
4.          for(let i=0; i < arr.length ; i++) {
5.               if(obj[arr[i]]) {
6.                    obj[arr[i]]++;
7.               } else {
8.               obj[arr[i]] = 1;
9.               }
10.         }
11.     return obj;
12. }

As explained, We have taken each character in an array( here arr) and we are looping through each characters and finding if that character exist in the object(here obj which is initially empty).

If the character exist we will increment the value else we will add the character in the object.

Hope this article was helpful. Subscribe and leave your comment to support.
Thank you!!


Post a Comment

Popular Posts

Javascript Hoisting Interview Question and Answers - 5

In this post,I have tried to cover all the types of possible interview questions and answers on hoisting. If you are not familiar with the hoisting, I would highly recommend you to go to my post on hoisting . Once you are comfortable with the topic, you can attempt these questions. Understanding the type of question will help you to answer. I have provided the hint after each question. All the answers are given at the end of the post. //Question 1 console.log('bar:', bar) bar = 15 var foo = 1 console.log(foo, bar) var bar Hint : Basics of hoisting //Question 2 var foo = 5 console.log('foo:', foo) var foo; var bar = 10; var bar; console.log('bar:', bar) var baz = 10 var baz = 12 console.log('baz:', baz) Hint : Basics of hoisting     //Question 3 function foo() { function bar() { return 5 } return bar() function bar() { return 10 } } console.log(foo()); Hi

Javascript Closure Interview Questions and Answers - 6

Here in the post, I have posted all the possible interview questions and answers on closure. If you are not familiar with the closure , I would highly recommend you to go to my post on   closure . Once you are comfortable with the topic, you can attempt these questions. All the answers are given at the end of the post. //Question 1 function foo() { var a = 5 function bar() { console.log(a) } return bar; } var baz = foo() baz()   // Question 2 function outer(a) { var b = 2 function inner() { var c = 5 console.log(a * b * c) } return inner; } var multiply = outer(5) multiply() // Question 3 const arr = [10, 20, 30, 40, 50] for (var i = 0; i < arr.length; i++) { setTimeout(function() { console.log('Index: ' + i + ', element: ' + arr[i]) }, 1000) } // Question 4 for (var i = 0; i < 5; i++) { setTimeout(function(i) { return function() {

Come Closure in Javascript

What is a closure? If we want to derive a definition,we can say, A closure is a feature of Javascript where inner function has access to the outer (enclosing) function’s variables—scope chain. This scope chains means inner function has: access to its own scope (variables defined between its curly brackets and its parameters), access to the outer function’s variables and parameters,  access to the global variables. Now we will look into it in detail. Consider following example var globalVar = "xyz"; function outerFunc(outerArg) { var outerVar = 'Alex'; function innerFunc(innerArg) { var innerVar = 'Chris'; console.log("globalVar = " + globalVar); console.log("outerArg = " + outerArg); console.log("innerArg = " + innerArg); console.log("outerVar = " + outerVar); console.log("innerVar = " + innerVar); } innerFunc(456); } outerFunc(12