Pooja Patel
https://drive.google.com/file/d/1rlIckF21OxJqfzbgg6twLvDPcUKs-JFJ/view
* was low on confidence initially, struggled with 1st question, but finally completed
* was able to change code properly from one approach to another
* implemented 2nd easy question correct and fast
* implemented medium level qn also correctly
* except for 1st qn, was very clear and quick in thinking and logic building
* handson in js looks good
* prev experience seems relevant
1) add digits
```
/**
* @param {number} num
* @return {number}
*/
var addDigits = function(num) {
if(Math.floor(num/10) == 0){
return num;
}
// function addNumberDigits(currentNumber){
// if([0,1,2,3,4,5,6,7,8,9].includes(currentNumber)){
// return currentNumber;
// }
// let sum = 0;
// while(currentNumber){
// sum+= currentNumber%10;
// currentNumber = Math.floor(currentNumber/10);
// }
// return addNumberDigits(sum);
// }
// return addNumberDigits(num);
let currentNumber = num;
while(![0,1,2,3,4,5,6,7,8,9].includes(currentNumber)){
let sum = 0;
while(currentNumber){
sum+= currentNumber%10;
currentNumber = Math.floor(currentNumber/10);
}
currentNumber = sum;
}
return currentNumber;
};
```
2) array transform https://jsfiddle.net/uxajzywL/
```
function transformJSON(input){
let outputJSON = {};
for(let i =0; i< input.length; i++){
const entry = input[i];
if(!outputJSON[entry.state]){
outputJSON[entry.state] = {};
}
if(!outputJSON[entry.state][entry.city]){
outputJSON[entry.state][entry.city] = [];
}
outputJSON[entry.state][entry.city].push(entry.pincode);
}
return outputJSON;
}
console.log(transformJSON(input))
```
3) Flatten Deeply Nested Array
```
/**
* @param {Array} arr
* @param {number} depth
* @return {Array}
*/
var flat = function (arr, n) {
if(n == 0){
return arr;
}
let currentArray = arr;
while(n > 0){
let outputArray = [];
for(let i = 0; i < currentArray.length; i++){
if(Array.isArray(currentArray[i])){
outputArray.push(...currentArray[i]);
} else{
outputArray.push(currentArray[i])
}
}
n--;
currentArray = outputArray;
}
return currentArray;
};
```