コンテンツにスキップ

p-object

object モジュールはJavaScriptオブジェクトを操作するためのユーティリティ関数を提供します。

use p-object as o

オブジェクトの自身のプロパティ名の配列を返します。

オブジェクトの自身のプロパティ値の配列を返します。

[key, value] ペアの配列を返します。

自身のプロパティの数を返します。

オブジェクトが指定された自身のプロパティを持っていれば true を返します。

ab が同じ値であれば true を返します(Object.is セマンティクス)。

use p-object as o
const obj be [name be ///Purus///, version be 1]
o.keys[obj] -- ["name", "version"]
o.values[obj] -- ["Purus", 1]
o.entries[obj] -- [["name", "Purus"], ["version", 1]]
o.len[obj] -- 2
o.hasown[obj; ///name///] -- true

[key, value] ペアの配列からオブジェクトを作成します。

指定されたプロトタイプとオプションのプロパティ記述子で新しいオブジェクトを作成します。

ソースオブジェクトの自身のプロパティをターゲットにコピーします。ターゲットを返します。

複数のオブジェクトを新しいオブジェクトにマージします(浅いマージ)。

オブジェクトのディープクローンを返します(structuredClone を使用)。

use p-object as o
const a be [x be 1]
const b be [y be 2]
o.merge[a; b] -- { x: 1, y: 2 }
o.clone[a] -- { x: 1 }(ディープコピー)
const pairs be [[///a///; 1]; [///b///; 2]]
o.fromentries[pairs] -- { a: 1, b: 2 }

オブジェクトをフリーズし(変更を禁止)、フリーズされたオブジェクトを返します。

オブジェクトをシールし(プロパティの追加/削除を禁止、既存の変更は可能)、シールされたオブジェクトを返します。

オブジェクトがフリーズされていれば true を返します。

オブジェクトがシールされていれば true を返します。

use p-object as o
const obj be [x be 1]
o.freeze[obj]
o.isfrozen[obj] -- true

指定されたキーのみを含む新しいオブジェクトを返します。

指定されたキーを除外した新しいオブジェクトを返します。

use p-object as o
const obj be [a be 1; b be 2; c be 3]
o.pick[obj; [///a///; ///c///]] -- { a: 1, c: 3 }
o.omit[obj; [///b///]] -- { a: 1, c: 3 }