2025-04-07

anond:20250407021332

ちなみに

JSで0インデックスがヘダーのストリングアレイアレイからなるテーブルカラムを別アレイカラムインフォオブジェクトディスプレイナンバーに合わせて並び替えて名前nameからdisplayNameの値に入れ替えるコード

だと

想定される入力

const table = [

['id', 'name', 'age'], // ヘッダー

['1', 'Alice', '30'],

['2', 'Bob', '25'],

];

const columnInfo = [

{ name: 'name', displayName: '名前', displayNumber: 0 },

{ name: 'age', displayName: '年齢', displayNumber: 1 },

{ name: 'id', displayName: 'ID', displayNumber: 2 }

];

出力例(上記データ場合

[

['名前', '年齢', 'ID'],

['Alice', '30', '1'],

['Bob', '25', '2']

]

function reorderAndRenameTable(table, columnInfo) {

const header = table[0];

const body = table.slice(1);

// nameindexマッピングを取得

const nameToIndex = header.reduce((acc, name, idx) => {

acc[name] = idx;

return acc;

}, {});

// displayNumber順にカラム情報ソート

const sortedColumns = [...columnInfo].sort((a, b) => a.displayNumber - b.displayNumber);

// 新しいヘッダーを displayName に置き換え

const newHeader = sortedColumns.map(col => col.displayName);

// 各行の値も同じ順で並び替える

const newBody = body.map(row => {

return sortedColumns.map(col => row[nameToIndex[col.name]]);

});

return [newHeader, ...newBody];

}

ここまで数秒なのでまあこれくらいだと書くよりは早い

記事への反応 -
  • AIに聞いたらミドルウェアに存在しない機能ばかり勧められて 逆に、この周辺を避けて探したら見つかるんじゃないかと思って違うところを探したら目的を満たす機能があった 学習デー...

    • ちなみに JSで0インデックスがヘダーのストリングのアレイのアレイからなるテーブルのカラムを別アレイのカラムインフォオブジェクトのディスプレイナンバーに合わせて並び替えて...

      • 明日月曜なんだよ 逃がしてくれ

      • ゲームなんかはAIが書けるようなコードを手で書いたとしても工数全体から見たら誤差みたいなもんでな... 特に今時のコードで完結しないゲームエンジン使った開発では

        • xxの使い方みたいなのはReact+MUIとかではすぐ出るけど Unityとかはデータ少ないかもね

    • ReactとMUIつかって選択式のリストからサブミットボタンでどのAPIにポストするUIとか JSで0インデックスがヘダーのストリングのアレイのアレイからなるテーブルのカラムを別アレイのカ...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん