文章内容

2022/10/9 11:01:12,作 者: 黄兵

Javascript 字典

在静态类型的编程语言中,Dictionary(键/值对集合)对象有时会非常有用。虽然JavaScript本身不包含一个叫做 "Dictionary "的类型,但是它包含一个非常灵活的类型 "Object"。由于JavaScript是一种动态类型的语言,所以JavaScript的 "对象 "类型是非常通用的。这种灵活性使得 "对象 "类型的使用方式与静态类型的语言(如C#)相比可能显得有些奇怪。

在 JavaScript 中创建一个字典

虽然在 JavaScript 中没有 "Dictionary "类型,但实际上创建和使用一个 dictionary 对象非常容易。下面的步骤显示了如何用键/值对来创建和填充一个字典。

创建一个 Object:

var dict = new Object();

// or the shorthand way
var dict = {};

如果你使用速记方法,你也可以在创建Dictionary时用Key/Value对初始化它。

var dict = {
  FirstName: "Chris",
  "one": 1,
  1: "some value"
};

填充对象上的值

这可以通过使用对象的索引器属性来设置数值,或者直接调用它,就像它是对象的一个标准属性一样。正如你将在下面看到的,键值可以是任何对象,不限于字符串。

// using the Indexer
dict["one"] = 1;
dict[1] = "one";

// add new or update property
dict["Age"] = 42;

// direct property by name
// because it's a dynamic language
dict.FirstName = "Chris";

迭代键/值对

一个简单的JavaScript "for "循环可以用来遍历你的新字典:

for(var key in dict) {
  var value = dict[key];

  // do something with "key" and "value" variables
}

通过使用 "for(var key in dict) "方法对对象进行迭代,你能够轻松地访问包含的所有键/值对。这个方法将对每个 "key "值进行迭代,它是对象上的索引,可以用来访问相关的值。

直接访问键/值对

可以通过索引器直接访问字典对象上的键/值对,也可以像直接访问对象上的一个属性一样:

// using indexer
var name = dict["FirstName"];

// as property
var name = dict.FirstName;

函数也可以是键或值!

由于JavaScript是一种功能语言,函数也是对象。因此,函数也可以作为你的字典上的键/值。对于字典的键,这确实是有意义的,因为字典实际上只是一个对象,它可以有函数/方法在上面。但是对于最熟悉非函数式编程语言的开发者来说,使用函数作为值可能不是最明显的。

下面是一些在字典的键和值中使用函数的例子:

var dict = {};

var f = function() {
  // do something
};

// setup Function as Value
dict['method'] = f;

// setup Function as Key
dict[f] = 'some value';

// execute Function from Value
dict['method']();

var method = dict.method;
method();

// get value for Key
var val = dict[f];

以上就是本文的全部内容。


英文原文:JavaScript Basics: How to create a Dictionary with Key/Value pairs

分享到:

发表评论

评论列表