I think duck typing has its place.  The question is, what does your code expect?  I believe it expects at a minimum

1. a `.length` field
2. the `[]` operator

I don't believe you can overload the `[]` operator in js, and if that's the case, then you really do want an Array and not a ducked type.  If it's possible to overload that operator and all other operators, then if you were to say that you are duck typing and you just depend on an object that has `.length` and `[]` then I'd buy that argument.