JavaScript | 配列→オブジェクトにリファクタリングする手順とAPI設計視点での戻り値設計のベストプラクティス JavaScript X Facebook はてブ LINE コピー 2020.08.082025.10.28 スポンサーリンク 目次 配列→オブジェクトにリファクタリングする手順例題:配列で返す統計関数実務メリット 配列→オブジェクトにリファクタリングする手順 例題:配列で返す統計関数 function calcStats(values) { const sum = values.reduce((a, b) => a + b, 0); const avg = sum / values.length; const max = Math.max(...values); const min = Math.min(...values); return [sum, avg, max, min]; // 配列で返す } // 呼び出し const [sum, avg, max, min] = calcStats([10, 20, 30]); function calcStats(values) { const sum = values.reduce((a, b) => a + b, 0); const avg = sum / values.length; const max = Math.max(...values); const min = Math.min(...values); return [sum, avg, max, min]; // 配列で返す } // 呼び出し const [sum, avg, max, min] = calcStats([10, 20, 30]); JavaScript ステップ1:返す値に意味を付ける 配列の 0番目= sum, 1番目= avg のように順番に依存していると、後で誤解やミスが起きやすい。 そこで「名前付きで返す」ことを検討する。 ステップ2:オブジェクトにまとめる function calcStatsObj(values) { const sum = values.reduce((a, b) => a + b, 0); const avg = sum / values.length; const max = Math.max(...values); const min = Math.min(...values); return { sum, avg, max, min }; // オブジェクトで返す } function calcStatsObj(values) { const sum = values.reduce((a, b) => a + b, 0); const avg = sum / values.length; const max = Math.max(...values); const min = Math.min(...values); return { sum, avg, max, min }; // オブジェクトで返す } JavaScript ステップ3:呼び出し側を変更 const { sum, avg, max, min } = calcStatsObj([10, 20, 30]); console.log(sum, avg, max, min); const { sum, avg, max, min } = calcStatsObj([10, 20, 30]); console.log(sum, avg, max, min); JavaScript 実務メリット 順序ミスがなくなる → コードレビューやチーム開発で安心。 後から値を追加しても呼び出し側に影響が少ない。 可読性・保守性が格段に上がる。 次へ 123