ใน Lodash, มีฟังก์ชันต่างๆ ที่ช่วยในการจัดการกับอ็อบเจ็กต์ (objects) และข้อมูลแบบคีย์-ค่า ดังนี้:
_.get(object, path, [defaultValue]): ใช้สำหรับดึงค่าจากอ็อบเจ็กต์โดยระบุ path ในรูปแบบของสตริงหรืออาร์เรย์ path และสามารถกำหนดค่า defaultValue ในกรณีที่ไม่พบค่า.
1
2
3const user = { name: 'John', address: { city: 'New York' } };
const cityName = _.get(user, 'address.city', 'Unknown'); // 'New York'
const country = _.get(user, 'address.country', 'Unknown'); // 'Unknown'_.set(object, path, value): ใช้สำหรับกำหนดค่าในอ็อบเจ็กต์โดยระบุ path ในรูปแบบของสตริงหรืออาร์เรย์ path.
1
2
3const user = { name: 'John', address: { city: 'New York' } };
_.set(user, 'address.city', 'Los Angeles');
// user จะกลายเป็น { name: 'John', address: { city: 'Los Angeles' } }_.has(object, path): ใช้สำหรับตรวจสอบว่ามีคีย์หรือ path ในอ็อบเจ็กต์หรือไม่ และรีเทิร์น
true
หากมี หรือfalse
หากไม่มี.1
2
3const user = { name: 'John', address: { city: 'New York' } };
const hasCity = _.has(user, 'address.city'); // true
const hasCountry = _.has(user, 'address.country'); // false_.pick(object, [props]): ใช้สำหรับสร้างอ็อบเจ็กต์ใหม่ที่มีเฉพาะคีย์ที่ระบุใน props.
1
2const user = { name: 'John', age: 30, email: '[email protected]' };
const newUser = _.pick(user, ['name', 'email']); // { name: 'John', email: '[email protected]' }_.omit(object, [props]): ใช้สำหรับสร้างอ็อบเจ็กต์ใหม่ที่ไม่รวมคีย์ที่ระบุใน props.
1
2const user = { name: 'John', age: 30, email: '[email protected]' };
const newUser = _.omit(user, ['age']); // { name: 'John', email: '[email protected]' }_.merge(object, …sources): ใช้สำหรับผสานค่าจากหลายอ็อบเจ็กต์ sources ลงในอ็อบเจ็กต์ object และรีเทิร์นอ็อบเจ็กต์ object ที่ถูกแก้ไข.
1
2
3
4const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { b: { d: 3 }, e: 4 };
const merged = _.merge(obj1, obj2);
// merged จะเป็น { a: 1, b: { c: 2, d: 3 }, e: 4 }_.defaults(object, …sources): ใช้สำหรับกำหนดค่าเริ่มต้นในอ็อบเจ็กต์ object จาก sources โดยจะใช้ค่าจาก sources ในกรณีที่ object ไม่มีคีย์นั้นอยู่แล้ว.
1
2
3
4const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const newObj = _.defaults(obj1, obj2);
// newObj จะเป็น { a: 1, b: 2, c: 4 }_.isEqual(value, other): ใช้สำหรับเปรียบเทียบความเท่ากันของอ็อบเจ็กต์ value และ other และรีเทิร์น
true
ถ้ามีค่าเท่ากันหรือfalse
ถ้าไม่เท่ากัน.1
2
3const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { a: 1, b: { c: 2 } };
const isEqual = _.isEqual(obj1, obj2); // true_.isEmpty(value): ใช้สำหรับตรวจสอบว่าอ็อบเจ็กต์ value ว่างเปล่าหรือไม่ และรีเทิร์น
true
ถ้าว่างเปล่า หรือfalse
ถ้าไม่ว่างเปล่า.1
2
3
4const emptyObject = {};
const nonEmptyObject = { a: 1 };
const isEmpty1 = _.isEmpty(emptyObject); // true
const isEmpty2 = _.isEmpty(nonEmptyObject); // false_.mergeWith(object, …sources, customizer): ใช้สำหรับผสานค่าจากหลายอ็อบเจ็กต์ sources ลงในอ็อบเจ็กต์ object โดยใช้ฟังก
์ชัน customizer ในกรณีที่มีการชนกันของคีย์.
1
2
3
4
5
6
7
8
9
10
11
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { b: { d: 3 }, e: 4 };
const customizer = (objValue, srcValue) => {
if (_.isPlainObject(objValue)) {
return _.merge(objValue, srcValue);
}
};
const merged = _.mergeWith(obj1, obj2, customizer);
// merged จะเป็น { a: 1, b: { c: 2, d: 3 }, e: 4 }
เหล่าฟังก์ชันเหล่านี้ช่วยในการจัดการข้อมูลแบบอ็อบเจ็กต์ใน JavaScript และทำให้ง่ายขึ้นในการทำงานกับคีย์และค่าของอ็อบเจ็กต์ในโปรเจกต์ของคุณ.