Ich habe eine Schaltfläche, die eine Funktion namens clickNext() hat. Wenn Sie auf diese Schaltfläche klicken, wird die Indexposition (scope.selected) für ein Array mit dem Namen 'arr1' erhöht.Wie kann ich die Indexreihenfolge eines Arrays ändern?
<button type="button" class="right-btn col-xs-6" role="menuitem" ng-click="clickNext()">Next</button>
.
function clickNext()
{
scope.selected = (scope.selected + 1) % length;
}
arr1 = [
{apple: 1 , tango},
{banana: 3, kappa},
{orange:5, alpha},
{apple: 8 , beta},
{grape: 10 , sigma}
]
Problem
I eine identische Anordnung haben ARR1 'ARR2' genannt. Was ich versuche zu tun, ist die clickNext() Inkrementierung der nächsten Indexposition basierend auf der arr2-Array anstelle der Arr1-Array.
Derzeit wird die clickNext-Funktion immer noch in der Reihenfolge des arr1-Arrays inkrementiert. Zum Beispiel, wenn ich auf die Schaltfläche klicken, wäre es auf orange beginnen: 5 dann Apfel bewegen 8 usw.
arr2 = [
{orange:5, alpha},
{apple: 8 , beta},
{banana: 3, kappa},
{grape: 10 , sigma},
{apple: 1 , tango}
]
Was ich Mein obwohl Prozess versucht haben, dies zu tun ist das verwenden, findIndex() -Funktion und passen Sie das arr2-Element an das arr1-Element an. Das funktioniert nicht, aber vielleicht strukturiere ich es falsch?
clickNext(){
var oldIndex = filteredToXs(scope.selected);
scope.selected = oldIndex + 1;}
function filteredToXs(filteredIndex) {
var firstArr = scope.arr1[ filteredIndex ];
var xsIndex = scope.arr2.findIndex(function(item) {
return item.trackingNumber === firstArr.trackingNumber;
});
if(xsIndex >= 0) return xsIndex;
if(xsIndex === -1) return 0; // Default value
}
Ich verstehe nicht, warum Sie nicht nur die Verwendung von zweites Array direkt. Was ist der gewünschte Vorteil, wenn versucht wird, einen Bezug zwischen ihnen herzustellen? – nnnnnn
Der Einfachheit halber im Beispiel. Es ist im Code abgebildet, aber die Arrays müssen für Referenzzwecke getrennt sein. –