У вас нет «массива JSON», у вас есть массив JavaScript (JSON - это строковое представление данных).
Но в любом случае вы, похоже, говорите, что у вас есть массив user_images
, который содержит объекты, каждый из которых имеет свойство href
, и вы хотите сделать его таким, чтобы объект с определенным href
свойство является первым в массиве. Конкретное значение, которое вы ищете, хранится в переменной с именем my_href
. Если я правильно понял, читайте дальше ...
Полагаю, ваш текущий код выглядит примерно так:
var user_images = [];
for (value in someObjectThatYouDoNotShowInYourQuestion)
user_images.push({'href' : value.href, 'title' : value.title });
Чтобы найти элемент в массиве с href
, равным переменной my_href
, вы можете просто перебрать массив, пока не найдете этот элемент, а затем использовать .splice()
метод для удалите его из текущей позиции и unshift()
метод , чтобы добавить его в начало массива:
var item,
i;
for (i = 0; i < user_images.length; i++) {
if (user_images[i].href === my_href) {
item = user_images[i];
user_images.splice(i,1);
user_images.unshift(item);
break;
}
}
Если соответствующий элемент не найден, массив не изменится.
Примечание: вам на самом деле не нужна переменная item
, показанная в моем коде. Я вставил его для удобства чтения, чтобы было очевидно, что вы сохраняете ссылку на искомый объект, затем удаляете его, затем помещаете его в начало массива, но учитывая, что метод .splice()
возвращает массив удаленных элементов, которые можно заменить этими тремя строками в цикле for
на одну строку:
user_images.unshift(user_images.splice(i,1)[0]);