Javascript is most popular scripting language and it is always in first row of stackoverflow tags page.
So why we should not use javascript to implement algorithms. Generally in coding interview, you will have freedom to write algorithms in your favorite language. If you are good at Javascript, then why to go with other languages.

Lets implement some algorithm stuff with JS. The below topics were covered in this article

1) String/Array, 2) Linked List, 3) Tree, 4) Heap, 5) Graph, 6) Sorting, 7) Recursion vs. Iteration,
8) Dynamic Programming, 9) Bit Manipulation, 10) Probability, 11) Combinations and Permutations

### Debugging JS

to print content in console, we have to use below statement
```console.log('hello world');
```
Use chrome or firefox to debug Javascript. Just "right click" > "inspect element" > "click on console".
Then you will see console.

### Some useful operations in Javascript

#### To get char array from string

```"Hello world!".split('')
["H", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]```

#### Get char from index

```var str = "HELLO WORLD";
var res = str.charAt(0); // 'H'```

#### Get length of string

```var str = "HELLO WORLD";
var res = str.length; // 11```

#### Get length of array

```var sarr = ["H","E"];
var res = sarr.length; // 2```

#### Substring

```var str = "HELLO WORLD";
var res = str.substring(1); // "ELLO WORLD"
var res = str.substring(1,4); //"ELL"```

#### Sort array

```var nums= [4,2,3,1];
nums.sort(); // 1,2,3,4```

#### Convert string to int

`var num = parseInt("10");`

#### Convert array to string

```var sarr = ["H","E"];
var res = sarr.join(''); // HE```

#### Slice and copy array

```var nums= [4,2,3,1];
var newArr = nums.slice(); // copy array
var newArr = nums.slice(1,3); // 2, 3```

#### Reverse the array

```var nums = [1, 2, 3, 4];
nums.reverse(); // [3, 4, 2, 1]```

#### Remove Item From Array At Specific Index

```var num = [1,2,3,4]; // array
var j = 2; // index value
num.splice(j,1); // removing 3 from the array```

#### Add Item To Array At Specific Index

```var num = [1,2,3,4]; // array
var j = 2; // index value
num.splice(j,0,5); // Add 5 at index 2```

#### Verify if variable is not a number

```var str = "sample";
isNaN(str) // true
var num = 9;
isNaN(num) // false```

#### Iterate characters

```for (var c = 'a'; c <= 'z'; c = nextChar(c)) {
........
}

function nextChar(c) {
return String.fromCharCode(c.charCodeAt(0) + 1);
}
```

#### Map (key - value pair) implementation

```// put value in map
var map = {};
map['mykey'] = 'myvalue';

// check whether map contains key
if(map['mykey'] != null) {
// map contains key
}

// get value to the key
var value = map['mykey'];

// a method for getting key of a target value
function getKey(map, target){
for (var i in map)     {
if (map[i] == target) {
return i;
}
}
return null;
}

// delete the key-value pair
delete map[key];
```

### Stack Implementation

```var stack = [];
//push value into stack
stack.push(1);
//pop value from stack
stack.pop(1);```

### Queue Implementation

```var queue = [];
//push value into queue
queue.push(2);         // queue is now 
queue.push(5);         // queue is now [2, 5]
//pop value from queue
var i = queue.shift(); // queue is now 

### Classic Problems (String / Array)

#### 1 comment:

1. Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here.
Kindly keep blogging. If anyone wants to become a Front end developer learn from javascript and jquery training in chennai .
or learn thru Javascript Training in Chennai.
Nowadays JavaScript has tons of job opportunities on various vertical industry. javascript and jquery training in chennai

## Blogroll Srinivas Dasari find me on facebook follow me on twitter