У меня есть массив, как показано ниже.Сортировка массива с использованием позиций
var FruitArr = [5, "Mango", 3, "Apple", 2, "Lychee", 1, "Banana", 4, "Pineapple"];
Как я могу сортировать имена фруктов в соответствии с числом перед ним и добавлять в пустой массив? Массив хранится как position , item
.
Ожидаемого выход
var newFruitArr = ["Banana", "Lychee", "Apple", "Pineapple", "Mango"];
EDIT:
Причина, по которой элементы, как показано на рисунке: В моем фактическом коде плодовых имена base64 URL строка, которая создается на лета. Создание base64 зависит от изображения. Поэтому я не мог придумать лучшего способа добавления строк url в массив. Поэтому я добавил элементы в массив как «желаемая позиция», «base64 string». Я думал о том, чтобы отсортировать их, как только все преобразования сделаны. Я использовал .splice()
, который не работал должным образом из-за вышеуказанной причины.
Почему вы используете массив для такого рода данных вместо объекта JSON? Если вы измените свой FruitArr на «{» 5 »:« Манго »,« 3 »:« Яблоко »,« 2 »:« Личи »,« 1 »:« Бананна »,« 4 »:« Ананас »}; он может работать как в этом [ответе] (http://stackoverflow.com/questions/5467129/sort-javascript-object-by-key) – Schlangguru
Это довольно сумасшедший способ сохранить этот массив, я ожидал бы чего-то большего '[{position: 5, item:" Mango "}, {position: 2, item:" Apple} ... и т. д.] ' – Starscream1984