对于JavaScript来说,其自身的Array对象仅仅是个数组,无法提供通过关键字来获取保存的数据,jQuery源码中提供了一种非常好的方式来解决这个问题,先看一下源码:
function createCache() { var keys = [];function cache(key, value) { // Use (key + " ") to avoid collision with native prototype // properties (see Issue #157) if (keys.push(key += " ") > Expr.cacheLength) { // Only keep the most recent entries delete cache[keys.shift()]; } return (cache[key] = value); } return cache; }
上述源码是创建一个编译结果的缓存,代码调用方式如下:
var codecache = createCache();
源码中,keys用来保存键,而cache对象用来保存键值对,并通过全局变量Expr.cacheLength控制键的最大数量,若超过该数量,则自动删除第一个键及键值对。
本代码利用了闭包的结构,使外部代码无法访问到keys变量,这样就能确保keys变量的安全性。当然,由于JavaScript语句的特点,外部代码还是可以通过修改cache属性使键与键值对不匹配。不过,只要不故意恶搞,这本身应该也没有太大的关系。
当然,它也不能宣誓一个完善的dictionary对象,因为其未提供主键重复的判断等关键功能,有兴趣的朋友们可以完善它。
问题内容: 我想用JavaScript创建地图对象。我想到了以下想法: 但是我怎么才能找到一个特定的密钥是否存在? 问题答案: 如果要命名键,请不要使用数组,而应使用普通对象。 然后:
1、什么是 dict(字典) 上一章节,我们学习了列表(List) 和 元组(tuple) 来表示有序集合。 而我们在讲列表(list)的时候,我们用了列表(list) 来存储用户的姓名。 name = ['一点水', '两点水', '三点水', '四点水', '五点水'] 那么如果我们为了方便联系这些童鞋,要把电话号码也添加进去,该怎么做呢? 用 list 可以这样子解决: name = [[
字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键必须是唯一的,但值则不必。 创建字典: 1.创建空字典 变量 = {} 或者 变量 = dict() 2.创建多个元素的字典:
Dictionary《'TKey, 'TValue》类是F#地图数据结构的可变模拟,包含许多相同的功能。 从F#中的Map章节重述,地图是一种特殊的集合,它将值与键相关联。 创建一个可变字典 使用new关键字创建可变字典并调用列表的构造函数。 以下示例演示了这一点 - open System.Collections.Generic let dict = new Dictionary<string,
问题内容: 我正在从CSV导入并大致以以下格式获取数据 字段名称是动态的。(好吧,它们是动态的,可能存在比Field1和Field2更多的东西,但是我知道并且一直都会在那里。 我希望能够将此字典传递给我的班级,以便我可以将以上数据作为属性来访问。 有什么建议?至于为什么-我希望能够利用代码提示,并且将数据导入到我一直在做的名为字典的操作中并不能给我带来任何好处。 (因为直到运行时才解析变量名,所以
问题内容: 我是JavaScript的初学者,想显示HTML中的对象数组。 数据格式如下: 我想使用包含三列(id,名称,相关性)的列表来显示它们。ID可以从1自动增加。 谁能告诉我如何编写一个JavaScript代码来显示它? 请给我一些材料或示例进行学习。 问题答案: 说明 您想要的是用JavaScript填充HTML中的表(或另一个DOMElement),一旦加载页面并接收到JSON对象,该