📄 dictionary.js
字号:
/* Copyright (c) 2004-2006, The Dojo Foundation All Rights Reserved. Licensed under the Academic Free License version 2.1 or above OR the modified BSD license. For more information on Dojo licensing, see: http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.collections.Dictionary");dojo.require("dojo.collections.Collections");dojo.collections.Dictionary=function(/* dojo.collections.Dictionary? */dictionary){ // summary // Returns an object of type dojo.collections.Dictionary var items={}; this.count=0; // comparator for property addition and access. var testObject={}; this.add=function(/* string */k, /* object */v){ // summary // Add a new item to the Dictionary. var b=(k in items); items[k]=new dojo.collections.DictionaryEntry(k,v); if(!b){ this.count++; } }; this.clear=function(){ // summary // Clears the internal dictionary. items={}; this.count=0; }; this.clone=function(){ // summary // Returns a new instance of dojo.collections.Dictionary; note the the dictionary is a clone but items might not be. return new dojo.collections.Dictionary(this); // dojo.collections.Dictionary }; this.contains=this.containsKey=function(/* string */k){ // summary // Check to see if the dictionary has an entry at key "k". if(testObject[k]){ return false; // bool } return (items[k]!=null); // bool }; this.containsValue=function(/* object */v){ // summary // Check to see if the dictionary has an entry with value "v". var e=this.getIterator(); while(e.get()){ if(e.element.value==v){ return true; // bool } } return false; // bool }; this.entry=function(/* string */k){ // summary // Accessor method; similar to dojo.collections.Dictionary.item but returns the actual Entry object. return items[k]; // dojo.collections.DictionaryEntry }; this.forEach=function(/* function */ fn, /* object? */ scope){ // summary // functional iterator, following the mozilla spec. var a=[]; // Create an indexing array for(var p in items) { if(!testObject[p]){ a.push(items[p]); // fill it up } } var s=scope||dj_global; if(Array.forEach){ Array.forEach(a, fn, s); }else{ for(var i=0; i<a.length; i++){ fn.call(s, a[i], i, a); } } }; this.getKeyList=function(){ // summary // Returns an array of the keys in the dictionary. return (this.getIterator()).map(function(entry){ return entry.key; }); // array }; this.getValueList=function(){ // summary // Returns an array of the values in the dictionary. return (this.getIterator()).map(function(entry){ return entry.value; }); // array }; this.item=function(/* string */k){ // summary // Accessor method. if(k in items){ return items[k].valueOf(); // object } return undefined; // object }; this.getIterator=function(){ // summary // Gets a dojo.collections.DictionaryIterator for iteration purposes. return new dojo.collections.DictionaryIterator(items); // dojo.collections.DictionaryIterator }; this.remove=function(/* string */k){ // summary // Removes the item at k from the internal collection. if(k in items && !testObject[k]){ delete items[k]; this.count--; return true; // bool } return false; // bool }; if (dictionary){ var e=dictionary.getIterator(); while(e.get()) { this.add(e.element.key, e.element.value); } }};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -