...staff.find(e => e.id === p.id)

fpg1·2024년 5월 6일
function correlateData(peopleData: Person[], staff: Employee[]): EmployedPerson[] {
  const defaults = { company: 'None', dept: 'None' };
  return peopleData.map(p => ({ ...p, ...staff.find(e => e.id === p.id) || { ...defaults, id: p.id } }));
}

...staff.find(e => e.id === p.id)

이 부분이 이해가 안되었다.
전개 연산자(spread operator)는 연산자도 아니고, 따라서 값으로 평가도 되지 않는 것인데
마치 평가값에 체이닝하여 find 메소드를 호출하는 걸로 생각

찾아보니 전개 연산자는 연산 우선순위가 낮아
staff.find()가 호출되고 평가값에 다시 전개연산자가 계산된다

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#table

profile
backend

0개의 댓글