8

Javascript は Sets(一意のオブジェクトのみを含むリスト) をサポートしていますか?

私はこのリンクを見つけましたが、私が覚えていることから、JS の foreach はすべてのブラウザーでサポートされているわけではありません。

4

4 に答える 4

6

あなたの鍵は文字列ですか?

すべての JavaScript オブジェクトはマップです。つまり、セットを表すことができます。

あなたが言及したページに示されているように、各オブジェクトは各キー(属性名)のコピーを1つだけ受け入れます。キー/属性の値は重要ではありません。

于 2010-12-27T14:47:39.247 に答える
4

jshashtableを使用すると、任意のオブジェクトをキーとして保存し、指定したリンクと同じパターンを使用できます。さらに、キーの配列を取得するメソッドを提供し、それを反復処理できます。また、優れたクロスブラウザー サポートも備えているため、どのような環境にもうまく適合します。

于 2010-12-27T14:49:24.913 に答える
2

ES6(および corejs のようなポリフィル/シムを使用すると、次のようになります。

設定 - JavaScript | MDN

例:

var mySet = new Set([1, 2, 3, 2, 1]);  // => [1, 2, 3]
console.log(mySet.size);
console.log(mySet.has(3));
mySet.forEach(function(x){console.log(x)});

Polifill は古いブラウザーではサポートされていないため必須なので、最新のブラウザーのみを対象としている場合は無視してかまいません。

于 2016-10-18T04:38:00.490 に答える
0

Array.forEach()古い Opera およびすべての IE ブラウザではサポートされていないことをおそらく覚えているでしょうfor (var x in ...)。私が知る限り、これは「ネイティブ」JS の一部であり、すべてのブラウザでサポートされています。

于 2010-12-27T14:58:19.737 に答える