Object 對象
1._.merge(object, [sources])
此方法類似於_.assign,除了它遞歸地將源對象的自有和繼承的可枚舉字符串鍵控屬性合並到目標對象中。 如果存在目標值,將跳過解析為undefined的源屬性。 數組和純對象屬性以遞歸方式合並。 其他對象和值類型將通過賦值覆蓋。 源對象從左到右應用。 后續源覆蓋先前源的屬性分配。
var object = {
'a': [{ 'b': 2 }, { 'd': 4 }]
};
var other = {
'a': [{ 'c': 3 }, { 'e': 5 }]
};
_
.merge(object, other);
// => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
會保留原先的數據結構,如果通數據結構上有重復就會覆蓋.
var aa = {
name: 'ee',
age: 44,
arr: [{
name: '333',
age: 444,
yy: 99
}]
};
_.merge(aa, {
name: 'rr',
age: 33,
arr: [{
name: '44',
age: 555,
uu: 999
}]
});
/*結果 arr數組只有一個對象,所以結果是一個對象.並且同名的屬性會被覆蓋,不同名的會被添加*/
{ name: 'rr',
age: 33,
arr: [ { name: '44', age: 555, yy: 99, uu: 999 } ] }
/********************/
var bb = {
arr: [{yy: 99},{kkk:9099}]
};
var cc = {
arr: [{uu: 999}]
};
_.merge(bb, cc);
// 結果{ arr: [ { yy: 99, uu: 999 }, { kkk: 9099 } ] }
//原先的數據結構:arr是數組,包含兩個對象,所以合並結果也是兩個對象.
/***************************/
var bb = {
arr: [{yy: 99}]
};
var cc = {
arr: [{uu: 999},{kkk:9099}]
};
_.merge(bb, cc);
//結果:{ arr: [ { yy: 99, uu: 999 }, { kkk: 9099 } ] }
與上一例相同
2.
_.assignIn(object, [sources])
這個方法類似於_.assign,除了它迭代自己和繼承源屬性。
function Foo() {
this
.a = 1;
}
function Bar() {
this
.c = 3;
}
Foo
.prototype.b = 2;
Bar
.prototype.d = 4;
_
.assignIn({ 'a': 0 }, new Foo, new Bar);
// => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }
3.
_.assign(object, [sources])
將源對象的自己的可枚舉字符串鍵控屬性分配給目標對象。 源對象從左到右應用。 后續源覆蓋先前源的屬性分配。
function Foo() {
this
.a = 1;
}
function Bar() {
this
.c = 3;
}
Foo
.prototype.b = 2;
Bar
.prototype.d = 4;
_
.assign({ 'a': 0 }, new Foo, new Bar);
// => { 'a': 1, 'c': 3 }
Array 數組
1._.compact(array) 緊湊
會去掉
false, null, 0, "", undefined, and NaN are falsey(Boolean判斷為false的值)
Creates an array with all falsey values removed. The values
false, null, 0, "", undefined, and NaN are falsey.
