JavaScript中級問題【配列とオブジェクト編】10問

問題1:特定の条件でフィルタ

以下の配列から、年齢が20歳以上のユーザーだけを抽出してください。

const users = [
{ name: 'Alice', age: 18 },
{ name: 'Bob', age: 22 },
{ name: 'Carol', age: 17 },
{ name: 'Dave', age: 25 },
];

問題2:プロパティの合計を算出

以下の商品の合計金額を求めてください。

const items = [
{ name: 'Apple', price: 120 },
{ name: 'Banana', price: 80 },
{ name: 'Orange', price: 100 },
];

問題3:mapを使ってフォーマット変換

以下の配列から、"名前(年齢)" という形式の文字列の配列を作ってください。

const people = [
{ name: 'Eve', age: 30 },
{ name: 'Frank', age: 24 },
];

問題4:オブジェクトのキー一覧を取得

以下のオブジェクトから、すべてのキーを配列として取得してください。

const profile = {
name: 'Gina',
age: 28,
hobby: 'piano',
};

問題5:ネストされたプロパティの取得

以下のようなネストされたデータから、Tokyo の人口を取り出してください。

const data = {
japan: {
Tokyo: { population: 13900000 },
Osaka: { population: 8800000 },
},
};

問題6:スプレッド構文で配列を結合

以下の2つの配列を、スプレッド構文を使って結合してください。

const a = [1, 2];
const b = [3, 4];

問題7:オブジェクトの浅いコピー

以下のオブジェクトを浅くコピーし、新しいオブジェクトの age40 に書き換えてください(元のオブジェクトは変更しないでください)。

const person = { name: 'Helen', age: 35 };

問題8:reduceを使って平均値を出す

以下の配列の平均値(小数点第1位まで)を求めてください。

const scores = [80, 90, 75, 60];

問題9:Object.entriesでループ処理

以下のオブジェクトのキーと値をセットで出力してください。

const langs = {
js: 'JavaScript',
py: 'Python',
rb: 'Ruby',
};

問題10:配列内の重複を除去

以下の配列から、重複を除いた新しい配列を作ってください。

const nums = [1, 2, 2, 3, 4, 4, 5];

✅ 解答編:JavaScript中級問題【配列とオブジェクト編】

解答1:特定の条件でフィルタ

const adults = users.filter(user => user.age >= 20);
console.log(adults);

解答2:プロパティの合計を算出

const total = items.reduce((sum, item) => sum + item.price, 0);
console.log(total); // 300

解答3:mapを使ってフォーマット変換

const formatted = people.map(p => `${p.name}(${p.age})`);
console.log(formatted); // ["Eve(30)", "Frank(24)"]

解答4:オブジェクトのキー一覧を取得

const keys = Object.keys(profile);
console.log(keys); // ["name", "age", "hobby"]

解答5:ネストされたプロパティの取得

const tokyoPop = data.japan.Tokyo.population;
console.log(tokyoPop); // 13900000

解答6:スプレッド構文で配列を結合

const merged = [...a, ...b];
console.log(merged); // [1, 2, 3, 4]

解答7:オブジェクトの浅いコピー

const copied = { ...person, age: 40 };
console.log(copied); // { name: 'Helen', age: 40 }
console.log(person.age); // 35(元は変更されない)

解答8:reduceを使って平均値を出す

const average = (scores.reduce((sum, s) => sum + s, 0) / scores.length).toFixed(1);
console.log(average); // "76.2"

解答9:Object.entriesでループ処理

Object.entries(langs).forEach(([key, value]) => {
console.log(`${key} => ${value}`);
});
// js => JavaScript
// py => Python
// rb => Ruby

解答10:配列内の重複を除去

const unique = [...new Set(nums)];
console.log(unique); // [1, 2, 3, 4, 5]

📘 この問題集は、配列やオブジェクトの基礎操作からスプレッド構文や高階関数まで、実務で役立つ力を確認できる構成になっています。

おすすめの記事