Skip to main content

4 posts tagged with "JavaScript"

View all tags

JavaScript Notes

· 2 min read

Arrays

Example: [1, 2, 3]

Copying Arrays

// Pass by reference
let a = [1, 2, 3]
let b = a
b[0] = -1
a // [-1, 2, 3]

// Copy
a = [1, 2, 3]
b = a.slice()
b[0] = -1
a // [1, 2, 3]
b // [-1, 2, 3]

Last Value

let a = [1, 2, 3]
a.at(-1)

Slicing Arrays

let a = [1, 2, 3, 4, 5]
a.slice(2) // [3, 4, 5]
// Note
a.slice(2, -1) // [3, 4]

Creating Number Sequences (so-called range)

const range = (start, stop, step) =>
Array.from({ length: (stop - start) / step + 1}, (_, i) => start + (i * step));

range(0, 10, 1) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for-of

for(let c of ['a', 'b', 'c']){
console.log(c)
}
Result
a
b
c

map

let a = [1, 2, 3].map(x => x ** 2)
// [2, 4, 6]

Array of Zeros

Array.zeros = (n) => Array.from({ length: n}, () => 0);

Array.zeros(5) // [0, 0, 0, 0, 0]

Sum

Array.prototype.sum = function(){ return this.reduce((prev, curr) => prev + curr, 0) }

[1, 2, 3, 4].sum() // 10

Mean

Array.prototype.mean = function(){ return this.reduce((prev, curr) => prev + curr, 0) / this.length }

[1, 2, 3, 4].mean() // 2.5

Strings

Example: "text"

Template Literals

let a = 100
`${a / 10}` // "10"

Numbers

Example: 1

Converting String to Number

parseInt('100') // 100 
parseFloat('100.1') // 100.1

Formatting

// 3 decimal places
(1.2).toFixed(3) // "1.200"

Dates

let today = new Date

today.toDateString() // "Sat Jan 01 2022"
today.toISOString() // "2021-12-31T15:00:00.000Z"
today.toLocaleDateString() // "2022/1/1"
today.toLocaleString() // "2022/1/1 0:00:00"
today.toLocaleTimeString() // "0:00:00"
today.toString() // "Sat Jan 01 2022 00:00:00 GMT+0900 (Japan Standard Time)"
today.toTimeString() // "00:00:00 GMT+0900 (Japan Standard Time)"
today.toUTCString() // "Fri, 31 Dec 2021 15:00:00 GMT"

era.js

· 2 min read

I created a library for Japanese era names that can be used with JavaScript.

https://himeyama.github.io/era.js/era.js

let date = new Era()
date.getWareki() // "令和X年X月X日" (Today's date)

date = new Era("2020-1-1")
date.getWareki() // "令和2年1月1日"

date.getWareki("西暦") // "2020/01/01"

date.getDateAry() // ["令和", 2, 1, 1]

Era.date2wareki(id) // Convert id to era name

getWareki() Arguments

calshorttypeDisplay
"和暦"true0
1
2
3
4
5
false0
1
2
3
"西暦"true0
1
2
3
4
5
false0
1
2
3
4

[EOL]

Useful JavaScript Tricks

· One min read

Looping with indices using for

for([i, e] of ["a", "b", "c"].entries()){
console.log(i, e)
}

Also with forEach

["a", "b", "c"].forEach((e, i) => {
console.log(e, i)
})

Creating an array of length n

const n = 10
let ary = [...Array(n)].map((_, i) => i)
// Or alternatively
ary = Array.from({length: n}).map((_, i)=> i)

Sum of an array

let ary = [1, 2, 3, 4, 5]
ary.reduce((_, v) => _ + v)