我有一个数组,我们需要单击一个按钮来获取最接近的上一个ID,因为当我获得最接近的下一个的正确值时,但是对于上一个,我直接获取了第一个ID而不是先前的ID。我,
对于最近的下一个我正在使用(this.arrayVal.find(id => x app.component.html
<button (click) ="getPrev()">Previous Value</button>
app.component.ts
declare var require: any;
import { Component } from '@angular/core';
import { OnInit } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent{
arrayVal:any;
currentVal : any;
title = 'projectchart';
public array = [{"id":1},{"id":3},{"id":5}];
getPrev(x){
x = 5;
this.arrayVal= this.array;
let number = (this.arrayVal.find(id => id < x) || {});
console.log(number);
}
}
答案 0 :(得分:0)
尝试此功能。使用findIndex可以找到您单击的元素。然后保存该索引并从中减去-1以获得上一项。
getPrev(idToFind) {
const index = this.array.findIndex((obj: any) => obj.id === idToFind);
console.log('click index is: ', index);
if (index !== -1 && index > 0) {
let number = this.array[index - 1].id;
console.log('prev id is: ', number);
} else {
console.log('no prev id');
}
}