Skip to content

Object

约定: 指某函数处理的 的属性为类型

prop()

取出 中的一个属性。

  • Type
Overload 1
Overload 2
  • Details
Overload 1

传入一个属性名,再传入一个对象,取出对象中对应属性名的元素。

Overload 2

传入一个属性路径,再传入一个对象,取出对象中对应属性路径的元素。

  • Example
js
//Overload 1
prop('homo', { homo: 114514 }); //114514
//Overload 2
prop(['inside', 'homo'], { inside: { homo: 114514 } }); //114514
//Overload 1
prop('homo', { homo: 114514 }); //114514
//Overload 2
prop(['inside', 'homo'], { inside: { homo: 114514 } }); //114514

assoc()

修改 中的一个属性。

  • Type
Overload 1
Overload 2
  • Details

请注意:该函数不会改变原

Overload 1

传入一个属性名和目标值,再传入一个对象,将对象中属性名对应的值改为目标值并返回。

Overload 2

传入一个属性路径和目标值,再传入一个对象,将对象中对应属性路径的元素改为目标值并返回。

  • Example
js
//Overload 1
assoc('homo', 'yeah', { homo: 114514 }); //{ "homo": "yeah" }
//Overload 2
assoc(['inside', 'homo'], 'yeah', { inside: { homo: 114514 } }); //{ "inside": { "homo": "yeah" } }
//Overload 1
assoc('homo', 'yeah', { homo: 114514 }); //{ "homo": "yeah" }
//Overload 2
assoc(['inside', 'homo'], 'yeah', { inside: { homo: 114514 } }); //{ "inside": { "homo": "yeah" } }

modify()

将一个函数应用于

  • Type
Overload 1
Overload 2
  • Details

请注意:该函数会改变原

Overload 1

传入一个属性名和一个函数 ,再传入一个对象,将对象中属性名对应的元素 改为 并返回。

Overload 2

传入一个属性路径和一个函数 ,再传入一个对象,将对象中对应属性路径的元素 改为 并返回。

  • Example
js
//Overload 1
modify('homo', (v) => 'yeah', { homo: 114514 }); //{ "homo": "yeah" }
//Overload 2
modify(['inside', 'homo'], (v) => 'yeah', { inside: { homo: 114514 } }); //{ "inside": { "homo": "yeah" } }
//Overload 1
modify('homo', (v) => 'yeah', { homo: 114514 }); //{ "homo": "yeah" }
//Overload 2
modify(['inside', 'homo'], (v) => 'yeah', { inside: { homo: 114514 } }); //{ "inside": { "homo": "yeah" } }

dissoc()

删除 中的一个属性。

  • Type
Overload 1
Overload 2
  • Details

请注意:该函数不会改变原

Overload 1

传入一个属性名和目标值,再传入一个对象,将对象中属性名对应的元素删除并返回。

Overload 2

传入一个属性路径和目标值,再传入一个对象,将对象中对应属性路径的元素删除并返回。

  • Example
js
//Overload 1
dissoc('homo', { homo: 114514 }); //{}
//Overload 2
dissoc(['inside', 'homo'], { inside: { homo: 114514 } }); //{ "inside": {} }
//Overload 1
dissoc('homo', { homo: 114514 }); //{}
//Overload 2
dissoc(['inside', 'homo'], { inside: { homo: 114514 } }); //{ "inside": {} }

deepClone()

深复制一个对象。

  • Type
  • Details

传入一个 ,返回其深复制的结果。

  • Example
js
deepClone({ a: 1, b: 2, c: 3 }); //{ a: 1, b: 2, c: 3 }
deepClone({ a: 1, b: 2, c: 3 }); //{ a: 1, b: 2, c: 3 }

keys()

取出 Object 内的所有键。

  • Type
  • Details

传入一个 ,返回一个其所有键组成的列表。

  • Example
js
keys({ a: 1, b: 2, c: 3 }); //['a', 'b', 'c']
keys({ a: 1, b: 2, c: 3 }); //['a', 'b', 'c']

values()

取出 Object 内的所有值。

  • Type
  • Details

传入一个 ,返回一个其所有值组成的列表。

  • Example
js
values({ a: 1, b: 2, c: 3 }); //[1, 2, 3]
values({ a: 1, b: 2, c: 3 }); //[1, 2, 3]

makePair()

将一个元组数组转换为对象。

  • Type
  • Details

传入一个元素形如 的元组数组,返回一个每个键值形如

  • Example
js
makePair([
	['c', 'm'],
	['a', 'e'],
	['i', 'o']
]); //{ c: "m", a: "e", i: "o" }
makePair([
	['c', 'm'],
	['a', 'e'],
	['i', 'o']
]); //{ c: "m", a: "e", i: "o" }

construct()

将一个 class 的构造函数柯里化。

  • Type
  • Details

传入一个 class,返回一个柯里化后的构造函数。

  • Example
js
class foo {
	constructor(a, b, c) {
		//do something...
	}
}
construct(foo)(1)(2)(3);
class foo {
	constructor(a, b, c) {
		//do something...
	}
}
construct(foo)(1)(2)(3);

has()

判断 中是否有某属性。

  • Type
  • Details

第一个参数传入一个属性名,接下来传入一个对象,若对象中有属性名对应的元素,则返回 true,否则返回 false

  • Example
js
has('homo')({ homo: 1 }); //true
has('homo')({ homo: 1 }); //true

PureEval released under the GPL-3.0 License.