Practice for Object in JavaScript

メモ

  • オブジェクトのプロパティのソート

問題①

次のオブジェクトのプロパティを取得してください。

const obj = { name: "Alice", age: 25 };

// 期待する出力
Alice
obj.name

問題②

次のオブジェクトに新しいプロパティを追加してください。

const obj = { name: "Alice" };

// 期待する出力
{ name: "Alice", age: 25 }
obj.age = 25

問題③

次のオブジェクトのプロパティを削除してください。

const obj = { name: "Alice", age: 25 };

// 期待する出力
{ age: 25 }
delete obj.name

問題④

次のオブジェクトのプロパティの値を更新してください。

const obj = { name: "Alice", age: 25 };

// 期待する出力
{ name: "Alice", age: 30 }
obj.age = 30

問題⑤

次のオブジェクトのすべてのプロパティをループして表示してください。

const obj = { name: "Alice", age: 25 };

// 期待する出力
name: Alice
age: 25
for (const [key, value] of Object.entries(obj)) {
    console.log(`${key}: ${value}`)
}

問題⑥

次のオブジェクトのプロパティの存在を確認してください。

const obj = { name: "Alice", age: 25 };

// 期待する出力
true
obj.hasOwnProperty('name')

問題⑦

次のオブジェクトを別のオブジェクトにコピーしてください。

const obj1 = { name: "Alice", age: 25 };

// 期待する出力
{ name: "Alice", age: 25 }
const obj2 = { ...obj1 }

問題⑧

次のオブジェクトのプロパティをマージしてください。

const obj1 = { name: "Alice" };
const obj2 = { age: 25 };

// 期待する出力
{ name: "Alice", age: 25 }
const obj3 = { ...obj1, ...obj2 }

問題⑨

次のオブジェクトのプロパティを配列に変換してください。

const obj = { name: "Alice", age: 25 };

// 期待する出力
["Alice", 25]
Object.values(obj)

問題⑩

次のオブジェクトのプロパティをソートしてください。

const obj = { b: 2, a: 1, c: 3 };

// 期待する出力
{ a: 1, b: 2, c: 3 }
Object.keys(obj).sort().reduce((acc, key) => {
    acc[key] = obj[key];
    return acc;
}, {});

問題⑪

次のオブジェクトのプロパティの数を取得してください。

const obj = { name: "Alice", age: 25 };

// 期待する出力
2
Object.keys(obj).length

問題⑫

次のオブジェクトのすべての値を取得してください。

const obj = { name: "Alice", age: 25 };

// 期待する出力
["Alice", 25]
Object.values(obj)

問題⑬

次のオブジェクトのプロパティをフィルタリングしてください。

const obj = { name: "Alice", age: 25, city: "Tokyo" };

// 期待する出力
{ name: "Alice", city: "Tokyo" }
const obj = { name: "Alice", age: 25, city: "Tokyo" };
Object.keys(obj).filter((key) => key !== 'age').reduce((acc, key) => {
    acc[key] = obj[key];
    return acc;
}, {});

問題⑭

次のオブジェクトのプロパティを文字列に変換してください。

const obj = { name: "Alice", age: 25 };

// 期待する出力
"name: Alice, age: 25"
Object.keys(obj).map((key) => `${key}: ${obj[key]}`).join(', ')

問題⑮

次のオブジェクトのプロパティを深くコピーしてください。

const obj = { name: "Alice", details: { age: 25 } };

// 期待する出力
{ name: "Alice", details: { age: 25 } }
const obj2 = JSON.parse(JSON.stringify(obj))

問題⑯

次のオブジェクトのプロパティを結合してください。

const obj1 = { name: "Alice" };
const obj2 = { age: 25 };

// 期待する出力
{ name: "Alice", age: 25 }
const obj3 = { ...obj1, ...obj2 }

問題⑰

次のオブジェクトのプロパティを逆順に取得してください。

const obj = { a: 1, b: 2, c: 3 };

// 期待する出力
{ c: 3, b: 2, a: 1 }
Object.keys(obj).reverse().reduce((acc, key) => {
    acc[key] = obj[key];
    return acc;
}, {});

問題⑱

次のオブジェクトのプロパティを条件に基づいて削除してください。

const obj = { name: "Alice", age: 25, city: "Tokyo" };

// 期待する出力
{ name: "Alice", age: 25 }
const obj = { name: "Alice", age: 25, city: "Tokyo" };
Object.keys(obj).filter((key) => key !== 'city').reduce((acc, key) => {
    acc[key] = obj[key];
    return acc;
}, {});

問題㉒

次のオブジェクトのプロパティをJSON形式に変換してください。

const obj = { name: "Alice", age: 25 };

// 期待する出力
'{"name":"Alice","age":25}'
JSON.stringify(obj)

問題㉓

次のオブジェクトのプロパティをJSON形式から復元してください。

const jsonString = '{"name":"Alice","age":25}';
JSON.parse(jsonString)

問題㉕

次のオブジェクトのプロパティをマップしてください。

const obj = { a: 1, b: 2, c: 3 };

期待する出力:

{ a: 2, b: 4, c: 6 }
Object.keys(obj).map((key) => obj[key] * 2)

問題㉖

次のオブジェクトのプロパティを条件に基づいて取得してください。

const obj = { name: "Alice", age: 25, city: "Tokyo" };

// 期待する出力
{ name: "Alice" }
Object.keys(obj).filter((key) => key === 'name').reduce((acc, key) => {
    acc[key] = obj[key];
    return acc;
}, {});

問題㉗

次のオブジェクトのプロパティを条件に基づいてソートしてください。

const obj = { b: 2, a: 1, c: 3 };

// 期待する出力
{ a: 1, b: 2, c: 3 }
Object.keys(obj).sort().reduce((acc, key) => {
    acc[key] = obj[key];
    return acc;
}, {});