フォロー

どなたかこの再帰処理がうまくいっていないの直してもらえませんか?
ChatGPT に聞いてもうまくいかないです。
github.com/Neos21/pseudo/blob/

再帰処理がうまくいってないヤツ、期待するテストケースを書いています。
こんな風にできるように直したいです。宜しくお願いします。
github.com/Neos21/pseudo/blob/
github.com/Neos21/pseudo/blob/

片方だけだけどこんな感じ?
テストケースをtoStrictEqualにしたら通りました

/** snake_case → camelCase オブジェクト */
export const snakeToCamelCaseObject = <T extends object>(object: T): SnakeToCamelCaseObject<T> => {
  if (isObject(object)) {
    return Object.entries(object).reduce((accumulator, [snakeKey, value]) => {
      if (isObject(value) && Array.isArray(value)) {
        accumulator[snakeToCamelCase(snakeKey)] = value.map(item => snakeToCamelCaseObject(item)) as SnakeToCamelCaseObject<T>;
        return accumulator;
      } else if (isObject(value)) {
        accumulator[snakeToCamelCase(snakeKey)] = snakeToCamelCaseObject(value);
        return accumulator;
      } else {
        accumulator[snakeToCamelCase(snakeKey)] = value;
        return accumulator;
      }
    }, {}) as SnakeToCamelCaseObject<T>;
  }
  else if (Array.isArray(object)) {
    return object.map(item => snakeToCamelCaseObject(item)) as SnakeToCamelCaseObject<T>;
  }
  return object as SnakeToCamelCaseObject<T>;
};

ありがとうございます!!!!!!動きました!!!!!!!!!!!!!!!
大感謝…!!!

(それはそれとしてsnakecaseで通信する利点が見えないので全部Camelでやってしまっていいとおもう)

やっぱり…?
なんか Web サーバによっては大文字小文字を区別しないで処理する実装が存在するらしい、というのは調べたことあって、
10年近く前ですが Java と VB とかをまたぐ時につっかえてたことも記憶にあり、
どちらも JS 製の環境ですが、スネークにしておいて気を付けた方が良いのかな…とか思ったりしてました
気にしすぎ?

直感的には気にしすぎなだとおもうけれどnestjsはナニモワカラナイ

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。