Я использую функцию javascript reverse(), чтобы отменить объекты, хранящиеся в локальном массиве хранения. Но я пытаюсь вступить в брак с исходным индексом с новым упорядоченным массивом.Найти исходный индекс обратного массива
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.indexOf("Apple"); //2
var fruitsReversed = fruits.reverse();
fruitsReversed.indexOf("Apple"); //1 -> I want to know that it used to be 2
Есть ли простой способ сделать это? Мой реальный случай немного сложнее, так как исходная строка в формате JSON:
var data = {"info":[{"name":"Max"},{"name":"Alex},{"name":"Sam"},{"name":"Chris"}]}
... но я не знаю, если это будет иметь значение.
Обновление: Я получил эту работу, используя, используя немного работы вокруг:
var fruitsLength = fruitsReversed.length-1; //3. subtract one because the first index is 0, not 1
var fruitIndex = fruitsLength - fruitsReversed.indexOf("Apple"); //2 (3-1)
Таким образом, хотя это работает, я думаю, что должно быть чище путь ...
Я собирался предложить то, что вы сделали там, принимая длину и вычитанием 1, чтобы сделать его нулевым индексируется, а затем вычитая новое положение. Это не кажется настолько плохим решением, и если вы обнаружите, что занимаетесь подобным делом в нескольких местах, абстрагирование его до функции будет просто замечательным. – Dymos
Можете ли вы добавить дополнительную информацию о том, зачем нужен этот индекс? Если вы имеете дело со списком объектов, не можете ли вы сохранить ссылку на сам объект, не заботитесь об индексе массива? –
Спасибо за поддержку @Dymos – Brad