从Mockdata获取特定ID

时间:2018-12-23 13:29:48

标签: angular angular6

我无法使用查找来获取具有特定ID(getParticularid)的记录。我正在获取第一条记录,请检查以下代码。在这里,我想使用id来获取记录。请帮助我使用ID提取记录。我试图找到并过滤,但没有运气。

import { Injectable } from '@angular/core';
import { CHARACTERS } from './mock-data';
import { of } from 'rxjs';
import { Observable } from 'rxjs';
@Injectable({
  providedIn: 'root'
})
export class StudentDataService {

  constructor() { }

  getCharacters() : Observable<any[]>{
    return of(CHARACTERS);
  }

  getColumns() : string[]{
    return ["name", "roll", "study"];
  }

  getParticular(id) : Observable<any[]>{
   console.log("idsss-"+id);
    return CHARACTERS.find(id=>id === id);
  }

}

模拟文件代码

export const CHARACTERS: any[] = [

{
    id: '1',
    name: 'sai krishna',
    roll: '1257',
    study: 'mtech'
},

{
    id: '2',
    name: 'kumar',
    roll: '1227',
    study: 'btech'
}

]

1 个答案:

答案 0 :(得分:2)

您应该从一个对象中获取id,因为这里有一个对象数组,而不是ids的数组

getParticular(id) : Observable<any[]>{
   console.log("idsss-"+id);
    return CHARACTERS.find(obj => obj.id === id);
}

演示:

function getParticular(id) {
  console.log("idsss-"+id);
   return CHARACTERS.find(obj => obj.id == id);
}

const CHARACTERS = [
{
    id: '1',
    name: 'sai krishna',
    roll: '1257',
    study: 'mtech'
},
{
    id: '2',
    name: 'kumar',
    roll: '1227',
    study: 'btech'
}
]
var obj = getParticular('2');
console.log(obj);