当前位置: 首页 > 面试题库 >

如何在JavaScript中进行关联数组/哈希

郑正文
2023-03-14
问题内容

我需要使用JavaScript来存储一些统计信息,就像在C#中那样:

Dictionary<string, int> statistics;

statistics["Foo"] = 10;
statistics["Goo"] = statistics["Goo"] + 1;
statistics.Add("Zoo", 1);

JavaScript中是否有Hashtable类似的东西Dictionary<TKey, TValue>
如何以这种方式存储值?


问题答案:

使用JavaScript对象作为关联数组。
关联数组:简单来说,关联数组使用String而不是Integer数字作为索引。

创建一个对象

var dictionary = {};

Javascript允许您使用以下语法向对象添加属性:

Object.yourProperty = value;

相同的替代语法是:

Object["yourProperty"] = value;

如果您还可以使用以下语法创建键值对象映射

var point = { x:3, y:2 };

point["x"] // returns 3
point.y // returns 2

您可以使用for..in循环构造遍历关联数组,如下所示

for(var key in Object.keys(dict)){
  var value = dict[key];
  /* use key/value for intended purpose */
}


 类似资料:
  • 问题内容: 我有关联数组: 什么是按其值排序(降序)的最优雅方法,其中结果将是一个具有相应索引的数组: ? 问题答案: Javascript没有您所想到的“关联数组”。取而代之的是,您仅具有使用类似于数组的语法设置对象属性的能力(如您的示例),并且具有遍历对象属性的能力。 这样做的结果是无法保证对属性进行迭代的 顺序 ,因此没有什么比对它们更好的了。相反,您需要将对象属性转换为“ true”数组(

  • 哈希表的生成: 一个关联数组不通过下标来访问,而是通过主键(key)访问.这样的数组有时被叫作哈希(hash).将一对对的元素用逗号分隔开,并用大括号({})括起来,这样就组成了一个哈希表.你用一个关键字在哈希表里进行搜索,就像你在数组里用索引来提取数据一样. 例如: a={" Allex"=>2000," 帆布背包 "=>2003} 在这个例子中," Allex" 和 " 帆布背包 " 是主键(

  • 问题内容: 我有这种格式的数组: 如何按该字段的降序对该格式的数组排序?是否有内置功能? 问题答案: 使用并提供您自己的功能进行订购,例如

  • 一、数组变量的限制 在前面讲的数组变量中,可以通过下标访问其中的元素。例如,下列语句访问数组 @array 的第三个元素: $scalar = $array[2]; 虽然数组很有用,但它们有一个显著缺陷,即很难记住哪个元素存贮的什么内容。假如我们来写一个程序计算某文件中首字母大写的单词出现的次数,用数组来实现就比较困难,程序代码如下: 1 : #!/usr/local/bin/perl 2 : 3

  • 本文向大家介绍如何在JavaScript中对JSON数据进行分组?,包括了如何在JavaScript中对JSON数据进行分组?的使用技巧和注意事项,需要的朋友参考一下 要对JSON数据进行分组,您需要提取所有键并使用。以下是代码- 示例 要运行上述程序,您需要使用以下命令- 输出结果 在这里,我的文件名为demo122.js。这将产生以下输出-

  • 问题内容: 我想将bash中的关联数组转换为json hash / dict。我宁愿使用jq来执行此操作,因为它已经是一个依赖项,并且我可以依靠它来生成格式良好的json。有人可以演示如何实现这一目标吗? 问题答案: 有很多可能性,但是鉴于您已经编写了一个bash 循环,您可能希望从脚本的这种变体开始: 结果反映了bash 循环产生的键的顺序: 通常,基于馈送jq键值对的方法有很多值得推荐的方法,