함수 내부에서 배열을 두 번 돌리기 싫다면 reduce를 사용하자

null·2022년 3월 11일
0
  const orderdCurrencies = useMemo(() => {
    const orderedIndex = currencies.findIndex((i) => i.key === initialCurrency);
    const orderedCurrencyItem = currencies[orderedIndex];

    const newArr = currencies.filter((i) => i.key !== initialCurrency);
    newArr.unshift(orderedCurrencyItem);
    return newArr;
  }, [administrator, currencies]);
  const orderdCurrencies = useMemo(
    () =>
      currencies.reduce((prev, item) => {
        if (item.key === initialCurrency) {
          prev.unshift(item);
        } else {
          prev.push(item);
        }

        return prev;
      }, new Array<any>()),
    [initialCurrency, currencies]
  );

여기서 실수한 건 useMemo(() => {}) 중괄호 해놓고 return 안 한거 ㅋ
new Array([]) 배열까지 넣어주면서 빈배열 또 만든거 ㅋ

profile
개발이 싫어.

0개의 댓글