我写了一些像这样的代码:underscore.js每()未定义
var a = new Array(10); // should be [undefined * 10]
var b = _.every(a, function(m){
if(_.isUndefined(m)){
return false;
}
return true;
});
我希望b为“假”,但它返回“真”。 为什么它返回'真'?
然后,我改成这样:
var c = [undefined, undefined];
var d = _.every(c, function(m){
if(_.isUndefined(m)){
return false;
}
return true;
});
它在d返回 '假'。
他们为什么不一样?
可以在http://jsfiddle.net/3qj4B/3/
我使用'console.log(a)',它打印出[[undefined x 10]'。和'console.log(a [1])',它会打印出'undefined'。这让我感到困惑。如果我可以使用'a [1]'来获得某些东西,为什么我不能迭代它? – shian
http:// perfectionkills。com/how-ecmascript-5-still-does-not-allow-to-subclass-an-array /#special_nature_of_arrays –
谢谢你的链接。 – shian