TypeScript:
การใช้แอเรย์สมาชิก
วิธีการ:
การสร้างและใช้ associative arrays ใน TypeScript เป็นเรื่องง่าย นี่คือส่วนที่พื้นฐาน:
// การประกาศ associative array
let user: { [key: string]: string } = {};
// การเพิ่มข้อมูล
user["name"] = "Jane Doe";
user["email"] = "[email protected]";
console.log(user);
ผลลัพธ์:
{ name: 'Jane Doe', email: '[email protected]' }
การวนรอบผ่านคู่คีย์-ค่าก็ทำได้ง่ายเช่นกัน:
for (let key in user) {
console.log(key + ": " + user[key]);
}
ผลลัพธ์:
name: Jane Doe
email: jane@example.com
และถ้าคุณกำลังจัดการกับการผสมผสานของประเภทข้อมูล TypeScript’s type system มีประโยชน์:
let mixedTypes: { [key: string]: string | number } = {};
mixedTypes["name"] = "John Doe";
mixedTypes["age"] = 30;
console.log(mixedTypes);
ผลลัพธ์:
{ name: 'John Doe', age: 30 }
ลงลึก
ใน TypeScript สิ่งที่เราเรียกว่า associative arrays จริงๆ แล้วเป็น objects โดยประวัติศาสตร์ ในภาษาเช่น PHP, associative arrays เป็นประเภทพื้นฐาน แต่ JavaScript (และโดยขยาย TypeScript) ใช้ objects สำหรับวัตถุประสงค์นี้ แนวทางนี้เป็นทั้งจุดแข็งและจำกัด Objects ให้โครงสร้างที่มีความยืดหยุ่นสูงสำหรับการเชื่อมโยงสตริงกับค่า แต่พวกมันไม่ได้ตั้งใจให้ใช้เป็น ‘อาร์เรย์’ ในความหมายแบบดั้งเดิม เช่น คุณไม่สามารถใช้เมทอดอาร์เรย์เช่น push
หรือ pop
โดยตรงกับ objects นี้
สำหรับกรณีที่คุณต้องการคอลเลกชันที่มีลำดับของคู่คีย์-ค่าพร้อมการดำเนินการแบบอาร์เรย์ TypeScript (และ JavaScript สมัยใหม่) มี Map
object ให้:
let userMap = new Map<string, string>();
userMap.set("name", "Jane Doe");
userMap.set("email", "[email protected]");
userMap.forEach((value, key) => {
console.log(key + ": " + value);
});
ในขณะที่ระบบประเภทของ TypeScript และคุณสมบัติ ES6 เช่น Map
ให้ทางเลือกที่มีพลัง การทำความเข้าใจวิธีใช้ objects เป็น associative arrays มีประโยชน์สำหรับสถานการณ์ที่ตัวแปร object มีประสิทธิภาพสูงขึ้นหรือเมื่อทำงานกับโครงสร้างข้อมูล JSON มันเกี่ยวกับการเลือกเครื่องมือที่เหมาะสมสำหรับงาน