JavaScript問題集追加しました ECMAScript2025 stage4まで

JavaScript問題集追加しました ECMAScript2025 stage4まで

久しぶりに更新しました
https://gist.github.com/kenmori/1961ce0140dc3307a0e641c8dde6701d

問題387

こちらを

const fruits = [
  {name:"apples", quantity:300},
  {name:"bananas", quantity:500},
  {name:"oranges", quantity:200},
  {name:"kiwi", quantity:150}
]

to

{
  "high": [{"name": "apples","quantity": 300}, {"name": "bananas","quantity": 500}],
  "low": [{"name": "oranges","quantity": 200}, {"name": "kiwi","quantity": 150}]
}

このようにquantity201以上をhigh、200以下をlowとするgroupでまとめた構造にしてください

Object.groupBy(fruits, (item) => {
    return item.quantity > 200 ? "high" : "low"
})
// ES2024

問題388

こちらの気温リストの中で41度以上の要素を取得してください。

const temp = [27, 28, 30, 40, 42, 35, 30];

尚、末尾から走査すること

let high = temp.findLast((t) => t > 40);
// 42

// ES2023

問題388

こちらの気温リストの中で41度以上のインデックスを取得してください。

const temp = [27, 28, 30, 40, 42, 35, 30];

尚、末尾から走査すること

let index = temp.findLastIndex((t) => t > 40);
// 4

// ES2023

問題389

こちらの配列

const months = ["Januar", "Februar", "Mar", "April"];

"Mar"を正しく"March"に変更した新しい配列を作ってください。但し元の配列は破壊してはいけない。

const newMonths = months.with(2, "March");
months // ["Januar", "Februar", "Mar", "April"];
newMonths // ["Januar", "Februar", "March", "April"];

// ES2023

問題390

こちらの配列

const months = ["Jan", "Feb", "Mar", "Apr"];

"Jan"を取り除いてた新しい配列を取得してください。尚元の配列(month)は破壊しないでください。

const spliced = months.toSpliced(0, 1);
month // ["Jan", "Feb", "Mar", "Apr"];
spliced // ["Feb", "Mar", "Apr"]

// ES2023

ES2023では、元の配列を変更せずに配列を分割する安全な方法として、Array toSpliced()メソッドが追加されました。 新しいtoSpliced()メソッドと古いsplice()メソッドの違いは、新しいメソッドは元の配列を変更せずに新しい配列を作成するのに対し、古いメソッドは元の配列を変更する点です。

問題391

[1, 2, 3][1,2,4]があります。どちらにも含まれている値をSetで取得してください。

const set = new Set([1,2,3]).intersection(new Set([1, 2, 4]))
set // Set{1, 2}

Set.intersectionは要素と引数のうちどちらにも含まれるものを返します(AND)

問題392

[1, 2][1, 3]があります。要素と引数のうち少なくともどちらか片方に含まれるものをSet型で返してください

const set = new Set([1,2]).union(new Set([1, 3]))
set // Set{1, 2, 3}

Set.union 要素と引数のうち少なくともどちらか片方に含まれるものを返す OR

問題393

[1, 2][1, 3]があります。要素の中で引数に含まれないものをSet型で返してください

const set = new Set([1,2]).difference(new Set([1, 3]))
set // Set{2}

Set.difference 要素の中で引数に含まれないものを返す 差集合

問題394

[1, 2][1, 3]があります。要素と引数どちらか一方にしか含まれないものをSet値で返してください

const set = new Set([1,2]).symmetricDifference(new Set([1, 3]))
set // Set{2, 3}

// ES2025 state 4

Set.symmetricDifference 要素と引数どちらか一方にしか含まれないものを返す XOR