Skip to content
Open
30 changes: 30 additions & 0 deletions Task1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
function GroupByKey(array,key)
{
const tempData = {};

for ( var index=0; index<array.length; index++)
{

if (!tempData[array[index][key]])
{
tempData[array[index][key]]=[];
}

tempData[array[index][key]].push(array[index])

}
return tempData
}
const array=[
{id:1,name:"Bilal", city:"Lahore"},
{id:1,name:"Bilal", city:"Lahore"},
{id:3,name:"Hafsa", city:"Karachi"},
{id:4,name:"Rehan", city:"Lahore"},
{id:5,name:"Saqib", city:"Karachi"},
{id:6,name:"Farhan", city:"Islamabad"}

];

const key='city';

console.log(GroupByKey(array,key))
25 changes: 25 additions & 0 deletions Task2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
const array=[
{id:1,name:"Bilal", city:"Lahore"},
{id:1,name:"Bilal", city:"Lahore"},
{id:3,name:"Hafsa", city:"Karachi"},
{id:4,name:"Rehan", city:"Lahore"},
{id:5,name:"Saqib", city:"Karachi"},
{id:6,name:"Farhan", city:"Islamabad"}
];
const key='city';

function GroupByKey(arr,key) {
var tempobj=[];
arr.reduce((accumulator,currentvalue)=>{
if(!accumulator[currentvalue[key]]){
accumulator[currentvalue[key]]=[]
}
accumulator[currentvalue[key]].push(currentvalue)
tempobj=accumulator
return accumulator
},{});
return tempobj

}

console.log(GroupByKey(array,key))
31 changes: 31 additions & 0 deletions Task3.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
const array=[
{id:'one',next:"two", value:null},
{id:'two',next:"three", value:null},
{id:'three',next: null, value:null}
];
var result=[]

function updatearray(arr){
for(var i=arr.length-1; i>-1;i--){
updatevalue(arr[i])
}
}

function updatevalue(ele){
if(ele.next==null){
return (result.unshift(ele))
}
else{
for(var j in array){
if(result[0].id==array[j].next){
array[j].value=result[0]
result.unshift(array[j])
break
}
}
}
}
updatearray(array)
result=JSON.stringify(result);
console.log(result)
// console.log(result[0].value)
29 changes: 29 additions & 0 deletions Task4.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
const array=[
{id:'one',next:"two", value:null},
{id:'two',next:"three", value:null},
{id:'three',next: null, value:null}
];
var result=[]
function updatevalue(array){
if(result.length==0){
for(var i in array){
if(array[i].next==null){
result.unshift(array[i])
array.splice(array[i],1)
}
}
}
for(var j in array){
if(result[0].id==array[j].next){
array[j].value=result[0]
result.unshift(array[j])
array.splice(array[j],1)
updatevalue(array)
break
}
}

}
updatevalue(array.reverse())

console.log(result)
23 changes: 23 additions & 0 deletions Task5.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const array=[
{id:'one',next:"two", value:null},
{id:'two',next:"three", value:null},
{id:'three',next: null, value:null}
];
var nextindex=0
function updatearray(array){
updatevalue(array,0)
function updatevalue(array,index){
if(array[index].next==null){
return array[index]
}
else{
array[index].value=updatevalue(array,index+1)
return array[index]
}
}
}

updatearray(array)
var arr=array
arr=JSON.stringify(array)
console.log(arr)
22 changes: 22 additions & 0 deletions Task6.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
function delay(time) {
return new Promise((resolve, reject) => {
if (typeof(time) === 'string') {
console.log()
reject(new Error("Delay required a valid number"));
}
else{
time *= 1000;
setTimeout(resolve, time);
}
});
}

async function main() {
await delay(2);
console.log("saad");
await delay(2);
console.log("fareed");
await delay(2);
console.log("happy Birthday");
}
main();