如何将阵列推送更改为特定阵列?

时间:2013-04-04 05:50:27

标签: javascript arrays

我想只添加整数并忽略特定数组中的其他整数。我想在该数组的推送事件中添加这个条件。

Array.prototype.push = function(){   

if(condition){

   //execute push if true

  }

  else
  {

    //return false

  }

}

帮帮我怎么编码?这会影响我代码中的所有数组。我想在推送仅检查特定阵列时检查此条件。有什么方法可以实现它?

1 个答案:

答案 0 :(得分: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功能,请参阅How do I check that a number is float or integer?。)

以下是一些很棒的信息:http://perfectionkills.com/how-ecmascript-5-still-does-not-allow-to-subclass-an-array/。我在这里展示的内容被称为"直接扩展"在那篇文章中。