- 基本的に、パスカルケース(PascalCase) で記述する。JavaScriptはパスカルケースが使われるケースが多く、またHTML要素と区別しやすいため。
- 親コンポーネントと密結合した子コンポーネントには、親コンポーネントの名前をプレフィックスとして含むようにする。
// 例
components/
|- TodoList.tsx
|- TodoListItem.tsx
const rot13 = (c:string) => { | |
let unicode = c.charCodeAt(0); | |
if("a".charCodeAt(0) <= unicode && unicode <= "z".charCodeAt(0)) { | |
for(let i = 0; i < 13; i++) { | |
if(unicode === "z".charCodeAt(0)) { | |
unicode = "a".charCodeAt(0); | |
} else { | |
unicode++; | |
} |
function fisherYatesShuffle(arr: number[]): number[] { | |
for(let i = arr.length - 1; 0 <= i; i--) { | |
const r = Math.floor(Math.random() * (i + 1)); | |
[arr[i], arr[r]] = [arr[r], arr[i]]; | |
} | |
return arr | |
} | |
console.log(fisherYatesShuffle([1, 2, 3, 4, 5, 6, 7, 8])) |
function quickSort(arr: number[]): number[] { | |
if(arr.length < 1) return arr | |
// pivotをランダムにとる | |
const pivotIndex = Math.floor(Math.random() * arr.length); | |
const pivot = arr[pivotIndex]; | |
const left = arr.filter((value, index) => index !== pivotIndex && value <= pivot); | |
const right = arr.filter((value, index) => index !== pivotIndex && value > pivot); |
function insertionSort(arr: number[], arrSize: number) { | |
for(let i = 1; i < arrSize; i++) { | |
// pos = 0 は既にソート済みとし、pos = 1 から始める | |
let pos = i; | |
while(pos && arr[pos] < arr[pos - 1]) { | |
[arr[pos], arr[pos - 1]] = [arr[pos - 1], arr[pos]]; | |
pos--; | |
} | |
} |
function selectionSort(arr: number[], arrSize: number) { | |
for(let i = 0; i < arrSize - 1; i++) { | |
let min = i; | |
for(let j = i; j < arrSize; j++) { | |
if(arr[j] < arr[min]) { | |
min = j; | |
} | |
} |
function bubbleSort(arr: number[]) { | |
for(let i = 0; i < arr.length - 1; i++) { | |
for(let j = arr.length - 1; i < j; j--) { | |
if(arr[j] < arr[j - 1]) { | |
[arr[j], arr[j - 1]] = [arr[j - 1], arr[j]]; | |
} | |
} | |
} | |
return arr; | |
} |