Как переместить последний элемент массива - объект на первое место?

У меня есть такой массив объектов (это то что выдаёт консоль)

shapeToolsTarget: Array(4)
0: {id: 20, name: "Background", type: "shape"}
1: {id: 21, name: "BorderColor", type: "shape"}
2: {id: 22, name: "BorderWeight", type: "shape"}
3: {id: 3, name: "Paste", type: "text"}

Как мне переставить последний элемент на самое первое место(с 0 индексом) Тоесть чтобы элемент с id: 3 был на 1 месте shapeToolsTarget: Array(4)

0: {id: 3, name: "Paste", type: "text"}
1: {id: 20, name: "Background", type: "shape"}
2: {id: 21, name: "BorderColor", type: "shape"}
3: {id: 22, name: "BorderWeight", type: "shape"}

Я пытался сделать так

const arr = mySettings.shape.shapeToolsTarget;
arr.unshift(arr.pop());
console.log(arr);

но я получаю вот это:

0: {id: 22, name: "BorderWeightComponent", type: "shape"}
1: {id: 3, name: "PastePictureComponent", type: "text"}
2: {id: 20, name: "BackgroundColorComponent", type: "shape"}
3: {id: 21, name: "BorderColorComponent", type: "shape"}

элемент на 2 месте, вместо 1. Что могло пойти не так?


Ответы (1 шт):

Автор решения: Igor

Что могло пойти не так?

Вы это сделали два раза.

var arr = [
 {id: 20, name: "Background", type: "shape"},
 {id: 21, name: "BorderColor", type: "shape"},
 {id: 22, name: "BorderWeight", type: "shape"},
 {id: 3, name: "Paste", type: "text"}
];

arr.unshift(arr.pop());

console.log("[");
arr.forEach(item => console.log("", JSON.stringify(item)));
console.log("]");

→ Ссылка