10 ฟังก์ชันสำหรับ Map/Object ที่ใช้งานบ่อยที่สุดในภาษา Dart

NottDev
2 min readAug 16, 2019

--

สำหรับการจัดการเกี่ยวกับ Map หรือ Object ในภาษา Dart นั้นทางภาษาก็มี built-in utilities มาให้ใช้เช่นด้วยกับ Array ในบทความนี้ จะขอหยิบมา 10 ฟังก์ชันที่มีการใช้งานบ่อยที่สุด ซึ่งมีอะไรบ้าง ไปดูกันเล๊ยยยย

1. addAll()

ฟังก์ชันสำหรับรวม (merge) key/value เข้ากับ map ตั้งต้น
ถ้า key ไม่มีใน map จะเป็นการ add แต่ถ้ามีอยู่แล้ว จะเป็นการ update value ของ key นั้น

var user = {
"firstName": "Siriphon",
"age": 23,
};

user.addAll({
"lastName": "Panyathipo",
"age": 24,
});

print(user); // => {"firstName": "Siriphon", "age": 24, "lastName": "Panyathipo"}

2. containsKey()

ฟังก์ชันเช็ค key ที่ให้มาว่ามีใน map หรือไม่? ถ้ามี return true ถ้าไม่ return false

print(user.containsKey("age")); // => true
print(user.containsKey("accessToken")); // => false

3. containsValue()

ฟังก์ชันเช็ค value ที่ให้มาว่ามีใน map หรือไม่? ถ้ามี return true ถ้าไม่ return false

print(user.containsValue("Siriphon")); // => true
print(user.containsValue(30)); // => false

4. forEach()

ฟังก์ชันที่วนลูปแต่ละ key/value ใน map

var user = {"name": "NottDev", "age": 24, "grade": 3.12}user.forEach((key, value) => print('Key: $key, Value: $value')); //Output
Key: name, Value: NottDev
Key: age, Value: 24
Key: grade, Value: 3.12

5. putIfAbsent()

ฟังก์ชันสำหรับเพิ่ม key/value ถ้าหากยังไม่มีใน map แต่ถ้ามีอยู่แล้วจะใช้ค่าเดิม

user.putIfAbsent("accessToken", () => "abf329jklr90rnlk2..."); //{'name': 'NottDev', 'age': 24, 'grade': 3.12, accessToken: 'abf329jklr90rnlk2...'};

6. remove()

ฟังก์ชันลบ key/value ออกจาก map โดยใช้ key และฟังก์ชันจะ return value ของ key นั้นออกมา

user.remove("accessToken"); // => abf329jklr90rnlk2...

7. removeWhere()

ฟังก์ชันลบ key/value ออกจาก map โดยใช้การกำหนดเงื่อนไข (condition)

user.removeWhere((key, value) => key == "lastName");

8. clear()

ฟังก์ชันลบ key/value ทั้งหมดใน map

user.clear();print(user); // => {}

9. update()

ฟังก์ชันอัพเดท value โดยใช้ key

user["age"] = 25;
user.update("age", (dynamic val) => ++val); // => 26

หรือ ถ้า key นั้นไม่มีอยู่ใน map สามารถเพิ่ม parameter ที่ 3 สำหรับกำหนดค่าให้ key ดังกล่าวได้ ดังนี้

user.update("career", (dynamic val) => "Developer", ifAbsent: ()=> "Developer"); // => Developer

หรือคุณสามารถ update map ง่ายๆโดยใช้ เครื่องหมายวงเล็บของอาร์เรย์ (array bracket notation) ซึ่งส่วนใหญ่จะใช้วิธีนี้

user['gender'] = "Male";

10. Map.from()

ฟังก์ชันสำหรับสร้าง new map จาก map เดิม (clone)

var userClone = Map.from(user);

Reference:

(ข้อมูลอาจมีข้อผิดพลาด ถ้าจะเอาบทความนี้ไปอ้างอิงที่อื่นให้ตรวจสอบให้ดีก่อนนะครับ ขอบคุณครับ)

สำหรับวันนี้ ต้องขอลาไปก่อน สวัสดีครับ NottDev :)

--

--

NottDev
NottDev

Written by NottDev

Your only limit is your mind.

No responses yet