![](/img/trans.png)
[英]How can I select keys from a hash in Ruby with a string of 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
因此重复abt 3次。
我的数据结构:
{
'scholar': [ ],
'contributor': [ ]
and so on.
}
基本上,奖项的名称及其获得的日期。 一些奖项有一个日期,其他奖项有一个日期列表。
关键是奖项的名称。 价值是成就的日期。
为此,我最初有两个数组,然后遍历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.prototype,但是(几乎)任何其他名称都可以使用。 答案已更新,经过测试。 适用于任何原始数组。
如果您使用的是Chrome,请给您的对象一个不同的名称,而不是name
。 显然,在Chrome中它具有某些含义,并且for ... in...
循环在其中产生的结果与其他浏览器完全不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.