sharedがsheardってなってるので注意(2022/09/12 2:51:28現在)
Railsのrails cでjoins失敗時原因を確認する
実行したプログラムの最後に.inspectをつけると良い。
例外の内容などが表示される。
Railsで中間テーブル経由でjoinsしようとするとNameError: uninitialized constant NameSpaceName::ModelName
JavaScriptで連想配列から分割代入で不要なプロパティを削除する
const twoDimensionsObjArray = [ { key: 1, value: 'aaa', array: [ { aryKey: 10, aryVal: 'a' }, { aryKey: 20, aryVal: 'b' } ] }, { key: 2, value: 'bbb', array: [ { aryKey: 30, aryVal: 'c' }, { aryKey: 40, aryVal: 'd' } ] } ] twoDimensionsObjArray.map(({ array, ...other }) => other) => [ { key: 1, value: 'aaa' }, { key: 2, value: 'bbb' } ]
分割代入で指定されたarrayは呼び出さず、 残りのプロパティをそれぞれスプレッド構文で入れた、 otherをmapで配列にする対象とすることでプロパティ削除。
JavaScriptの2次元配列を.flat()で平坦化
flat()
const twoDimensionsArray = [[1a, 1b, 1c], [2a, 2b, 2c], [3a, 3b, 3c]] twoDimensionsArray.flat() => ['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']
flatMap()
flatMap()を使うと、
オブジェクトの配列内にある配列の平坦な連想配列を作れる
const twoDimensionsObjArray = [ { key: 1, value: 'aaa', array: [ { aryKey: 10, aryVal: 'a' }, { aryKey: 20, aryVal: 'b' } ] }, { key: 2, value: 'bbb', array: [ { aryKey: 30, aryVal: 'c' }, { aryKey: 40, aryVal: 'd' } ] } ] twoDimensionsObjArray.flatMap((obj)=>obj.array) => [ { aryKey: 10, aryVal: 'a' }, { aryKey: 20, aryVal: 'b' }, { aryKey: 30, aryVal: 'c' }, { aryKey: 40, aryVal: 'd' } ]
map()とflat()をそれぞれ実行しても同じ
const twoDimensionsObjArray = [ { key: 1, value: 'aaa', array: [ { aryKey: 10, aryVal: 'a' }, { aryKey: 20, aryVal: 'b' } ] }, { key: 2, value: 'bbb', array: [ { aryKey: 30, aryVal: 'c' }, { aryKey: 40, aryVal: 'd' } ] } ] const mappedArray = twoDimensionsObjArray.map((obj)=>obj.array) => [ [ { aryKey: 10, aryVal: 'a' }, { aryKey: 20, aryVal: 'b' } ], [ { aryKey: 30, aryVal: 'c' }, { aryKey: 40, aryVal: 'd' } ] ] mappedArray.flat() => [ { aryKey: 10, aryVal: 'a' }, { aryKey: 20, aryVal: 'b' }, { aryKey: 30, aryVal: 'c' }, { aryKey: 40, aryVal: 'd' } ]
TypeScriptでnullの型ガード
if(valName === null){return undefined}
nullはobjectらしい。
if(typeof valName === 'null'){return undefined}
とかだとうまく型ガードできない