>

프론트 엔드 응용 프로그램으로 전달하려면 데이터의 고유 한 값을 기반으로 필터 개체를 만들어야합니다. 객체 배열이 되려면 필터 중 하나가 필요합니다. [...new Set()] 의 이전 방법  작동하지 않습니다. name: is unexpected, expected } 라는 오류가 발생합니다.

내 다른 [...new Set()]  모든 기능이 예상대로 작동합니다.

   let allEmployees = await db.Employee.find();
    let filters = {
      hiringManager: [...new Set(allEmployees.map(emp => {
         emplid: emp.emplid,
         name: emp.name,
         hrOrg: emp.hrOrg}
       ))].sort(function(a, b){return a.name - b.name}),
      countries:[...new Set(allEmployees.map(emp => emp.country))].sort(),
      globalGrades: [...new Set(allEmployees.map(emp => emp.globalGrade))].sort(),
      jobFamilies: [...new Set(allEmployees.map(emp => emp.jobFamily))].sort()
    };

물체 집합을 반환하는 방법에 대한 아이디어가 있습니까?

  • 답변 # 1

    먼저, Set과 함께 스프레드 연산자를 사용하지 말고 싶습니다. 때로는 특정 시스템에서 일부 해석 문제가 발생하기 때문에 (확산 연산자는 배열과 비슷하지 않습니다)

    const allEmployees = [{
      country: 'France',
    }, {
      country: 'Westeros',
    }, {
      country: 'France',
    }];
    const unique = Array.from(new Set(allEmployees.map(emp => emp.country))).sort();
    console.log(unique);
    
    

    <시간>

    귀하의 경우 괄호가 누락되었습니다. map(emp => { 를 사용하는 경우  이처럼 map   { 안에 무엇이 있는지 고려할 것입니다  함수 정의. 지도에서 직접 데이터를 리턴하려면 () 내부에 랩핑하십시오.  좋아요 :

    map(() => ({
    }));
    
    

    const allEmployees = [{
      country: 'France',
    }, {
      country: 'Westeros',
    }, {
      country: 'France',
    }];
    
    const ret = [
      ...new Set(allEmployees.map(emp => ({
        emplid: emp.country,
      }))),
    ];
    console.log(ret);
    
    

관련 자료

  • 이전 javascript - 여러 계열의 highcharts treemap - 모두를 범례에 표시
  • 다음 electron - Electronjs에서 Javascript Webspeech Api 사용