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 } }); //114514assoc()
修改
- 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 }); //truehas('homo')({ homo: 1 }); //true