2

整数のみを追加し、特定の配列内の他のものを無視したい。その配列のプッシュ イベントにこの条件を追加したいと思います。

Array.prototype.push = function(){   

if(condition){

   //execute push if true

  }

  else
  {

    //return false

  }

}

これをコーディングする方法を教えてください。これは、コード内のすべての配列に影響します。特定の配列についてのみ、プッシュ時にこの状態を確認したいと思います。それを達成する方法は何ですか?

4

1 に答える 1

2

jsFiddle: http://jsfiddle.net/QhJzE/4

メソッドを配列に直接追加します。

var nums = [];

nums.push = function(n) {
    if (isInt(n))
        Array.prototype.push.call(this, n);
}

nums.push(2);
nums.push(3.14);
nums.push('dawg');

console.log(nums);

(関数については、数値が浮動小数点数か整数かを確認する方法を参照してくださいisInt。)

ここにいくつかの素晴らしい情報があります: http://perfectionkills.com/how-ecmascript-5-still-does-not-allow-to-subclass-an-array/ . ここで示したものは、その記事では「直接拡張」と呼ばれています。

于 2013-04-04T06:05:13.020 に答える