我想只添加整数并忽略特定数组中的其他整数。我想在该数组的推送事件中添加这个条件。
Array.prototype.push = function(){
if(condition){
//execute push if true
}
else
{
//return false
}
}
帮帮我怎么编码?这会影响我代码中的所有数组。我想在推送仅检查特定阵列时检查此条件。有什么方法可以实现它?
答案 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/。我在这里展示的内容被称为"直接扩展"在那篇文章中。