Как получить упорядоченный индекс после изменения значений в массиве в угловых?
У меня есть список элементов в массиве, скажем,
Design
Analysis
Testing
Development
Чей индекс будет,
0,1,2,3
Здесь я использую угловое перетаскивание, которое используется для перетаскивания элемента списка. С использованием dragula я меняю положение массива, скажем,
Analysis
Design
Development
Testing
Порядок меняется, но позиция индекса остается такой же, как,
1,0,3,2
Здесь позиция индекса находится не в порядке и выглядит как старое значение индекса, несмотря на порядок, в котором она выглядит. Принимая во внимание, что мне нужно иметь одинаковую позицию индекса независимо от того, какие изменения происходят внутри массива, что означает, что всегда позиция индекса должна начинаться с 0,1,2,... so on
даже есть изменение в порядке.
HTML-компонент, который я использовал,
<div class="card-content">
<div dropDirective (dropEvent)="addDropItem($event)" class="droppable" [dropHighlight]="'highlight'">
<div [dragula]="'second-bag'">
<app-generic-drop-box *ngFor="let item of itemsDropped; index as i" (editBtn)='editBtn($event)' (deleteBtn)='deleteBtn($event)' [genericBox]='item' class="arrow_box dropItem temp" (click)='indexOfItem(i)'> </app-generic-drop-box>
</div>
</div>
</div>
В файле TS,
import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ViewContainerRef, OnDestroy } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { ScenarioMapService } from '../scenario-map.service';
import { DynamicFormModel } from '../dynamic-form-config/dynamic-form-model';
import { Textbox } from '../dynamic-form-config/textbox';
import { CONFIG } from '../../app.config';
@Component({
selector: 'app-drop-area',
templateUrl: './drop-area.component.html',
styleUrls: ['./drop-area.component.scss']
})
export class DropAreaComponent implements OnInit, OnDestroy {
indexOfItem(i) {
console.log(i);
}
}
Вот console.log(i)
показывает позицию индекса, если пользователь щелкает по списку, если я изменяю позицию массива, мне нужно получить упорядоченный индекс после изменения, как 0,1,2,3...
.. Пожалуйста, помогите мне достичь результата.
1 ответ
Чтобы сбросить индекс в массиве AngularJS, вы можете отфильтровать его без каких-либо действий.
Таким образом, индексы устанавливаются снова.
resetArr = orgArr.filter(function(){return true;});
Массив-индексы 1,0,3,2
будет 0,1,2,3
еще раз, но данные остаются на месте.
Для справки: нужно сбросить только индексы массива JavaScript Stackru Thread...