Как переместить последний элемент массива - объект на первое место?
У меня есть такой массив объектов (это то что выдаёт консоль)
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("]");