私はclickNext()という関数を持つボタンを持っています。そのボタンがクリックされるたびに、 'arr1'という配列のインデックス位置(scope.selected)がインクリメントされます。配列のインデックス順を変更するにはどうすればよいですか?
<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}
]
問題
私は 'ARR2' と呼ばれるARR1と同一の配列を持っています。私がしようとしているのは、arr1配列の代わりにのarr2配列に基づいて、次のインデックス位置にclickNext()インクリメントを置くことです。
今すぐclickNext関数は、arr1配列の順番でインクリメントします。私はボタンをクリックした場合、それはオレンジ色に開始する:5その後、私はこれを達成するために マイかかわらプロセスを試してみましたが使用することです
arr2 = [
{orange:5, alpha},
{apple: 8 , beta},
{banana: 3, kappa},
{grape: 10 , sigma},
{apple: 1 , tango}
]
など、リンゴ8へ移動しますfindIndex()関数を呼び出し、arr2項目をarr1項目に一致させます。それは動作しませんが、おそらく私はそれを間違って構成していますか?
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
}
あなただけ使用していない理由を私は理解していません直接2番目の配列。それらの間の相互参照を試みることの望ましい利益は何ですか? – nnnnnn
例を簡単にするためです。コード内にマッピングされていますが、配列は参照のために別々にする必要があります。 –