Object ใน Lodash

ใน Lodash, มีฟังก์ชันต่างๆ ที่ช่วยในการจัดการกับอ็อบเจ็กต์ (objects) และข้อมูลแบบคีย์-ค่า ดังนี้:

  1. _.get(object, path, [defaultValue]): ใช้สำหรับดึงค่าจากอ็อบเจ็กต์โดยระบุ path ในรูปแบบของสตริงหรืออาร์เรย์ path และสามารถกำหนดค่า defaultValue ในกรณีที่ไม่พบค่า.

    1
    2
    3
    const user = { name: 'John', address: { city: 'New York' } };
    const cityName = _.get(user, 'address.city', 'Unknown'); // 'New York'
    const country = _.get(user, 'address.country', 'Unknown'); // 'Unknown'
  2. _.set(object, path, value): ใช้สำหรับกำหนดค่าในอ็อบเจ็กต์โดยระบุ path ในรูปแบบของสตริงหรืออาร์เรย์ path.

    1
    2
    3
    const user = { name: 'John', address: { city: 'New York' } };
    _.set(user, 'address.city', 'Los Angeles');
    // user จะกลายเป็น { name: 'John', address: { city: 'Los Angeles' } }
  3. _.has(object, path): ใช้สำหรับตรวจสอบว่ามีคีย์หรือ path ในอ็อบเจ็กต์หรือไม่ และรีเทิร์น true หากมี หรือ false หากไม่มี.

    1
    2
    3
    const user = { name: 'John', address: { city: 'New York' } };
    const hasCity = _.has(user, 'address.city'); // true
    const hasCountry = _.has(user, 'address.country'); // false
  4. _.pick(object, [props]): ใช้สำหรับสร้างอ็อบเจ็กต์ใหม่ที่มีเฉพาะคีย์ที่ระบุใน props.

    1
    2
    const user = { name: 'John', age: 30, email: '[email protected]' };
    const newUser = _.pick(user, ['name', 'email']); // { name: 'John', email: '[email protected]' }
  5. _.omit(object, [props]): ใช้สำหรับสร้างอ็อบเจ็กต์ใหม่ที่ไม่รวมคีย์ที่ระบุใน props.

    1
    2
    const user = { name: 'John', age: 30, email: '[email protected]' };
    const newUser = _.omit(user, ['age']); // { name: 'John', email: '[email protected]' }
  6. _.merge(object, …sources): ใช้สำหรับผสานค่าจากหลายอ็อบเจ็กต์ sources ลงในอ็อบเจ็กต์ object และรีเทิร์นอ็อบเจ็กต์ object ที่ถูกแก้ไข.

    1
    2
    3
    4
    const 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 }
  7. _.defaults(object, …sources): ใช้สำหรับกำหนดค่าเริ่มต้นในอ็อบเจ็กต์ object จาก sources โดยจะใช้ค่าจาก sources ในกรณีที่ object ไม่มีคีย์นั้นอยู่แล้ว.

    1
    2
    3
    4
    const obj1 = { a: 1, b: 2 };
    const obj2 = { b: 3, c: 4 };
    const newObj = _.defaults(obj1, obj2);
    // newObj จะเป็น { a: 1, b: 2, c: 4 }
  8. _.isEqual(value, other): ใช้สำหรับเปรียบเทียบความเท่ากันของอ็อบเจ็กต์ value และ other และรีเทิร์น true ถ้ามีค่าเท่ากันหรือ false ถ้าไม่เท่ากัน.

    1
    2
    3
    const obj1 = { a: 1, b: { c: 2 } };
    const obj2 = { a: 1, b: { c: 2 } };
    const isEqual = _.isEqual(obj1, obj2); // true
  9. _.isEmpty(value): ใช้สำหรับตรวจสอบว่าอ็อบเจ็กต์ value ว่างเปล่าหรือไม่ และรีเทิร์น true ถ้าว่างเปล่า หรือ false ถ้าไม่ว่างเปล่า.

    1
    2
    3
    4
    const emptyObject = {};
    const nonEmptyObject = { a: 1 };
    const isEmpty1 = _.isEmpty(emptyObject); // true
    const isEmpty2 = _.isEmpty(nonEmptyObject); // false
  10. _.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 และทำให้ง่ายขึ้นในการทำงานกับคีย์และค่าของอ็อบเจ็กต์ในโปรเจกต์ของคุณ.