I have below variable with array of Objects
let Obj1 =
[
{Id: 123, name: 'A'},
{Id: 124, name: 'B'},
{Id: 125, name: 'C'},
{Id: 126, name: 'D'},
{Id: 127, name: 'E'}
]
let Obj2 = {Id:126, name: 'D'}
How do I move the Obj2 in Obj1 to the 0th index dynamically in Javascript or TypeScript? Obj2 is from backend and Obj1 is the data already present in frontend The End result should be as below
[
{Id: 126, name: 'D'},
{Id: 123, name: 'A'},
{Id: 124, name: 'B'},
{Id: 125, name: 'C'},
{Id: 127, name: 'E'}
]
let Obj1 =
[
{id: 123, name: 'A'},
{id: 124, name: 'B'},
{id: 125, name: 'C'},
{id: 126, name: 'D'},
{id: 127, name: 'E'}
];
let Obj2 = {id:126, name: 'D'};
let new_array = Obj1.reduce((curr, acc)=>(acc.id === Obj2.id ? curr.unshift(acc) : curr.push(acc), curr), []);
console.log(new_array);
Please try this
let Obj1 = [
{
"Id":123,
"name":"A"
},
{
"Id":124,
"name":"B"
},
{
"Id":125,
"name":"C"
},
{
"Id":126,
"name":"D"
},
{
"Id":127,
"name":"E"
}
]
let Obj2 = {
"Id":126,
"name":"D"
}
/*
if Obj2 isn't in the array called Obj1...
put Obj2 at the front of the Obj1 array
*/
if (Obj1.indexOf(Obj2) == -1) {
Obj1.unshift(Obj2);
}
let Obj1 =
[
{Id: 123, name: 'A'},
{Id: 124, name: 'B'},
{Id: 125, name: 'C'},
{Id: 126, name: 'D'},
{Id: 127, name: 'E'}
]
let Obj2 = {Id:126, name: 'D'}
for (let i = 0; i < Obj1.length; i++) {
if (Obj1[i].Id === Obj2.Id && Obj1[i].name === Obj2.name) {
Obj1.splice(i, 1)
Obj1.unshift(Obj2)
break
}
}
console.log(Obj1)