บทความต้นฉบับเผยแพร่ที่: http://www.birchlee.com/post/2011/10/19/27.aspx
JavaScript มักจะพบคู่คีย์-ค่าบางคู่ ซึ่งก่อนหน้านี้มีการใช้งานโดยใช้อาร์เรย์สองมิติ ในปัจจุบัน เราเพียงแค่จำลองคลาสวิธีใช้พจนานุกรม
หลักการ: สร้างอ็อบเจ็กต์ที่ประกอบด้วยอาร์เรย์สองตัว ได้แก่ อาร์เรย์คีย์และอาร์เรย์ค่า และเรียกเมธอดของอ็อบเจ็กต์อาร์เรย์ Javascript
ที่อยู่อ้างอิง W3C: http://www.w3school.com.cn/js/jsref_obj_array.asp
เมธอด BuildDictionary() ใช้เพื่อสร้างวัตถุ Dictionary ที่ประกอบด้วยอาร์เรย์สองตัว
เมธอด AddItem เรียกเมธอด push ของอ็อบเจ็กต์ Array ของ JavaScript เพื่อผนวกคีย์และค่าเข้ากับอาร์เรย์ที่เกี่ยวข้อง
เมธอด UpdateItem ใช้เพื่อเปลี่ยนค่าที่เกี่ยวข้อง
เมธอด DeleteItem เรียกเมธอด Splice ของอ็อบเจ็กต์ Array ของ JavaScript เพื่อลบองค์ประกอบ พารามิเตอร์แรกคือดัชนีขององค์ประกอบที่จะลบ และพารามิเตอร์แรกแสดงถึงหมายเลขที่จะลบ
GetKeyStr ใช้เพื่อรับสตริงหลังจากเชื่อมต่ออาร์เรย์ Keys
GetValueStr ใช้เพื่อรับสตริงหลังจากเชื่อมอาร์เรย์ค่าเข้าด้วยกัน
มีทั้งหมด 5 วิธี ดังนี้
/*สร้างพจนานุกรม*/
ฟังก์ชั่น BuildDictionary() {
dic = วัตถุใหม่ ();
dic.Keys = อาร์เรย์ใหม่ (); // อาร์เรย์คีย์
dic.Values = อาร์เรย์ใหม่ (); // อาร์เรย์ค่า
กลับ dic;
-
/*เพิ่มรหัส, ค่า*/
ฟังก์ชั่น AddItem (คีย์, ค่า, dic) {
var keyCount = dic.Keys.length;
ถ้า (keyCount > 0) {
แฟล็ก var = จริง;
สำหรับ (var i = 0; i < keyCount; i++) {
ถ้า (dic.Keys[i] == คีย์) {
ธง = เท็จ;
แตก; //ถ้ามีอยู่ก็อย่าเพิ่มเข้าไป
-
-
ถ้า (ตั้งค่าสถานะ) {
dic.Keys.push (คีย์)
dic.Values.push(มูลค่า);
-
-
อื่น {
dic.Keys.push (คีย์)
dic.Values.push(มูลค่า);
-
กลับ dic;
-
/*เปลี่ยนคีย์, ค่า*/
ฟังก์ชั่น UpdateItem (คีย์, ค่า, dic) {
var keyCount = dic.Keys.length;
ถ้า (keyCount > 0) {
แฟล็ก var = -1;
สำหรับ (var i = 0; i < keyCount; i++) {
ถ้า (dic.Keys[i] == คีย์) {
ธง = ฉัน;
แบ่ง; // ค้นหาดัชนีที่เกี่ยวข้อง
-
-
ถ้า (ตั้งค่าสถานะ > -1) {
dic.Keys[ธง] = คีย์;
dic.Values[ธง] = ค่า;
-
กลับ dic;
-
อื่น {
กลับ dic;
-
-
/*ลบค่าคีย์*/
ฟังก์ชั่น DeleteItem (คีย์, dic) {
var keyCount = dic.Keys.length;
ถ้า (keyCount > 0) {
แฟล็ก var = -1;
สำหรับ (var i = 0; i < keyCount; i++) {
ถ้า (dic.Keys[i] == คีย์) {
ธง = ฉัน;
แบ่ง; // ค้นหาดัชนีที่เกี่ยวข้อง
-
-
ถ้า (ตั้งค่าสถานะ > -1) {
dic.Keys.splice (ธง 1); // ลบ
dic.Values.splice (ธง 1); // ลบ
-
กลับ dic;
-
อื่น {
กลับ dic;
-
-
/*รับ Key string แล้วเชื่อมเข้ากับสัญลักษณ์*/
ฟังก์ชั่น GetKeyStr (ตัวคั่น dic)
-
var keyCount=dic.Keys.length;
ถ้า(keyCount>0)
-
กลับ dic.Keys.join (ตัวคั่น);
-
อื่น
-
กลับ '';
-
-
/*รับค่าและต่อเข้ากับสัญลักษณ์*/
ฟังก์ชั่น GetValueStr (ตัวคั่น dic)
-
var keyCount=dic.Keys.length;
ถ้า(keyCount>0)
-
กลับ dic.Values.join (ตัวคั่น);
-
อื่น
-
กลับ '';
-
-
การใช้งาน: สร้างตัวแปรส่วนกลางและดำเนินการตัวแปรส่วนกลางนี้เพื่อใช้งาน
นี่เป็นการเริ่มต้นที่ดี