如何在Javascript中从哈希表中提取唯一键
How to extract Unique keys from a Hash Table in Javascript
我正在尝试用javascript从哈希表打印唯一的单个键到标签上。
我的代码:
for (var key in name) {
// write name in the side panel. //
$('div.hidden').append('<p>' + key + '</p>').css("color", "white");
}
这工作。但是,它会多次打印我的密钥。
谁能告诉我如何改进我的代码,在我的哈希表中只显示一次所有键???
输出示例:-
A
B
C
D
E
F
G
H
A
B
C
D
E
F
G
H
A
B
C
D
E
F
G
H
so重复了大约3次。
我的数据结构:
{
'scholar': [ ],
'contributor': [ ]
and so on.
}
基本上是奖项的名称和获得奖项的日期。有些奖项只有一个日期,有些则有一系列日期。
键是奖项的名称。
为完成日期/秒。为了构建这个,i最初有两个数组,然后遍历names数组并构建最终结果:—如果最终结果已经包含键,则将相应的日期压入其值,否则为包含相应日期的数组设置一个新键。(创建最终的哈希表)
类似:
var resultVal = {};
for(var i = 0; i < names.length; ++i) {
if(resultVal[names[i]]) {
resultVal[names[i]].push(dates[i]);
} else {
resultVal[names[i]] = [dates[i]];
}
}
像这样的东西应该正确:
Array.prototype.unique=function unique(){var r=this;var t=[];var mx=r.length;for (var z=0; z< mx; z++){if(t.indexOf(r[z])==-1){t[t.length]=r[z];}}return t;};
//ex usage:
var name2=[1,2,3,4,3,2,1]
name2.unique().map(function(key){
// write name in the side panel. //
$('div.hidden').append('<p>' + key + '</p>').css("color", "white");
return key;
}); // == [1,2,3,4]
注意变量名"name"不能绑定到Array。原型的一些奇怪的原因,但(几乎)任何其他名称都可以工作。答案更新,测试。
如果你使用Chrome,给你的对象一个不同的名字,而不是name
。显然,在Chrome中它有一些意义,for ... in...
循环产生的结果与其他浏览器完全不同。
相关文章:
- 在数据提取完成之前进行页面渲染
- 如何在Javascript中从字符串中提取某些单词
- 使用onkeyup JS事件检查输入的值是否唯一
- RegEx JavaScript:数字后的符号提取
- 如何在内联依赖项并将图像转换为dataURI的情况下完全提取网页
- Regex提取URL返回数组的一部分;未定义”;
- 当同一浏览器的两个实例浏览时,Javascript页面如何具有唯一的ID
- 如何提取“;href"最近列表项中的属性值
- Lodash映射并返回唯一
- 使用时刻.js从日期时间中提取时间
- 通过javascript从会话中提取用户名
- HTML页面如何提取通过表单传递的参数
- 在数据库中循环值时,为输入框获取唯一值
- 是否可以自动拉取“随机”;标签“;从一长串文本中提取
- innerHTML的子字符串可以在初始调用时提取吗
- 如何使用phonegap从安卓设备中提取联系人的字母顺序
- 如何从数组中查找唯一对象
- 如何在Javascript中从哈希表中提取唯一键
- 在Firebase中使用push()时如何提取唯一ID
- 创建唯一的 URL,用于链接到从数据库中提取的数据