สำหรับการจัดการเกี่ยวกับ 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 :)