المقال الأصلي نشر على: http://www.birchlee.com/post/2011/10/19/27.aspx
غالبًا ما تواجه جافا سكريبت بعض أزواج القيمة الرئيسية، والتي تم تنفيذها مسبقًا باستخدام مصفوفات ثنائية الأبعاد. اليوم، قمنا ببساطة بمحاكاة فئة مساعدة القاموس.
المبدأ: قم بإنشاء كائن يحتوي على صفيفين، مصفوفة مفاتيح ومصفوفة قيمة، واستدعاء أسلوب كائن Javascript Array.
العنوان المرجعي لـ W3C: http://www.w3school.com.cn/js/jsref_obj_array.asp
يتم استخدام الأسلوب BuildDictionary() لإنشاء كائن قاموس يحتوي على صفيفين
تستدعي طريقة AddItem طريقة الدفع لكائن مصفوفة JavaScript لإلحاق المفاتيح والقيم بالمصفوفة المقابلة.
يتم استخدام طريقة UpdateItem لتغيير القيمة المقابلة
تستدعي طريقة حذف العنصر طريقة Splice لكائن مصفوفة JavaScript لحذف العناصر. المعلمة الأولى هي فهرس العنصر المراد حذفه، وتمثل المعلمة الأولى الرقم المراد حذفه.
يتم استخدام GetKeyStr للحصول على السلسلة بعد سلسلة مجموعة المفاتيح
يتم استخدام GetValueStr للحصول على السلسلة بعد سلسلة صفيف القيم.
يحتوي على خمس طرق في المجموع:
/*إنشاء قاموس*/
وظيفة بناء القاموس () {
dic = كائن جديد ()؛
dic.Keys = new Array(); // مصفوفة المفاتيح
dic.Values = new Array(); // مصفوفة القيمة
عودة مدينة نيويورك؛
}
/*إضافة مفتاح، قيمة*/
وظيفة AddItem(مفتاح، قيمة، ديك) {
var keyCount = dic.Keys.length;
إذا (عدد المفاتيح > 0) {
علامة فار = صحيح؛
لـ (var i = 0; i < keyCount; i++) {
إذا (dic.Keys[i] == مفتاح) {
العلم = خطأ؛
استراحة // إذا كان موجودا فلا تضيفه
}
}
إذا (العلم) {
dic.Keys.push(مفتاح)
dic.Values.push(value);
}
}
آخر {
dic.Keys.push(مفتاح)
dic.Values.push(value);
}
عودة مدينة نيويورك؛
}
/*تغيير المفتاح والقيمة*/
وظيفة UpdateItem(مفتاح، قيمة، ديك) {
var keyCount = dic.Keys.length;
إذا (عدد المفاتيح > 0) {
علم فار = -1;
لـ (var i = 0; i < keyCount; i++) {
إذا (dic.Keys[i] == مفتاح) {
العلم = أنا؛
استراحة // ابحث عن الفهرس المقابل
}
}
إذا (العلم > -1) {
dic.Keys[flag] = key;
dic.Values[flag] = value;
}
عودة مدينة نيويورك؛
}
آخر {
عودة مدينة نيويورك؛
}
}
/*إزالة قيمة المفتاح*/
وظيفة حذف العنصر (مفتاح، ديك) {
var keyCount = dic.Keys.length;
إذا (عدد المفاتيح > 0) {
علم فار = -1;
لـ (var i = 0; i < keyCount; i++) {
إذا (dic.Keys[i] == مفتاح) {
العلم = أنا؛
استراحة // ابحث عن الفهرس المقابل
}
}
إذا (العلم > -1) {
dic.Keys.splice(flag,1);
dic.Values.splice(flag, 1); //إزالة
}
عودة مدينة نيويورك؛
}
آخر {
عودة مدينة نيويورك؛
}
}
/*احصل على السلسلة الرئيسية وقم بربطها بالرموز*/
الدالة GetKeyStr(فاصل، dic)
{
var keyCount=dic.Keys.length;
إذا (عدد المفاتيح> 0)
{
إرجاع dic.Keys.join(separator);
}
آخر
{
يعود ''؛
}
}
/*الحصول على سلسلة القيمة وربطها بالرموز*/
الدالة GetValueStr(فاصل، dic)
{
var keyCount=dic.Keys.length;
إذا (عدد المفاتيح> 0)
{
إرجاع dic.Values.join(separator);
}
آخر
{
يعود ''؛
}
}
الاستخدام: قم بإنشاء متغير عام وتشغيل هذا المتغير العام لاستخدامه.
هذه بداية جيدة