タグ

arrayとjavascriptに関するarrow0626のブックマーク (3)

  • JavaScriptでconcatはもう使うべきではないのかもしれない (Kanasansoft Web Lab.)

    当エントリーは多くの誤りを含んでいます。参考にされる場合は最後の追記部分まで含めて読まれるようにお願いします。 それなりに慣れているはずのプロのプログラマでも、このような勘違いや大失態をすることがあるという教訓として残すために、エントリーの削除や修正はせずに追記のみに留めておきます。 JavaScriptで、配列に要素を追加するメソッドに、push、unshift、splice、concatがある。このうち、配列の後方に要素を追加するのは、(要素を好きな場所に追加可能なspliceを除くと)pushとconcatの二つである。この二つのメソッドは破壊的/非破壊的の違いがあれ、似たような挙動を示す。

  • JavaScript: Array.prototype.uniq - mayokara note

    Array.prototype.uniq = function(){ for (var i=0,l=this.length; i<l; i++) { if (this.indexOf(this[i]) < i) { this.splice(i--, l-- && 1); } } return this; }; [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9].uniq() // -> [3, 1, 4, 5, 9, 2, 6, 8, 7] アレイのuniq JavaScriptで どう書く?org アレイのuniqどう書く?org - 口から出まかせ もう同じアプローチの解法は出てるんだけど、lengthを変数に取っておくとちょっと効率化できる。 あと、問答無用で破壊するのがJavaScript流だと思うので、そうした。 潰したくないときは、ary

  • 配列のユニーク化、(unique) - 素人がプログラミングを勉強していたブログ

    追記2:concatだと配列のなかに配列が入ってると勝手に展開されて駄目だった。Constellationさんのコメントのコードを使うとその問題も起こらない。 追記:配列の中身に文字列以外が入ってるとうまくいかない。詳しくはコメント参照。 こうするといい。 function uniq(arr) Array.reduce(arr, function(a, b) a.indexOf(b) == -1? a.concat(b): a , []); 追記ここまで 前に作ったものよりだいぶ簡潔。たぶん速いんじゃないかと思う。配列風オブジェクトにも使える。 function uniq(arr) { var o = {}; return Array.filter(arr, function(i) i in o? false: o[i] = true); } uniq([0,1,2,3,4,8,false

    配列のユニーク化、(unique) - 素人がプログラミングを勉強していたブログ
  • 1