2011-12-17 7 views
0

どのようにキー値のペアを格納することができ、キーがタプルできることができるJavaScriptでPython辞書を実装しますか?Python辞書in Javascript

すべてのアンカーを見つけて、その値をキーとして(href値、タイトル値)、このタプルの通貨数を値として辞書のhref属性とtitle属性を格納したいとします。

コードは(それは、PythonとJavascriptのミックスです)、次のようになります。

たぶん
var anchors = document.querySelectorAll ("a"); 
d = []; // dictionary data structure 
for (var i = 0, len = anchors.length; i < len; i++) { 
    currentTuple = (anchors[i].href, anchors[i].title); 
    if (!d.containsKey(currentTuple)) { 
    d[currentTuple] = 1; 
    } else { 
    d[currentTuple] += 1; 
    } 
} 

キーはタプルであることができなかった場合、それは容易になるだろうが、それが可能だ場合、私は見てみたいと思いますそれ。

ありがとう

+1

私は、この目的のために非常に有用であることが分かってきました。このライブラリー:http://www.timdown.co.uk/jshashtable/。カスタム '.equals'関数を実装すると、それはあなたの必要に応じて機能するはずです。 – pimvdb

答えて

1

この作品はありますか? titleとhrefを一意のキーとして連結するだけです。

var data = [].reduce.call(document.links, function(data, a){ 
    var key = a.href+","+a.title; 
    if(data[key]) { 
     data[key]++; 
    } 
    else { 
     data[key] = 1; 
    } 

return data; 
}, {}); 

http://jsfiddle.net/knYwb/

+0

一意性を保証するために、タイトルに別の特殊文字や覚えのカンマを使用する必要があるかもしれません。 – hugomg

+0

@missingno、どういう意味ですか?コンソールにオブジェクトをダンプしたときに読みやすくするためにカンマは必要ありません。 – Esailija

+0

問題は、連結すると理論的に同じキーを生成する2つの別個のタプルを持つことができるということです。 – hugomg