5 ms·
Because that loop doesn't do what you think it does? for...in iterates over the keys of an object, but for in in vue iterates over the elements of an array.
by zkldi 5y ago
Because that loop doesn't do what you think it does?
for...in iterates over the keys of an object, but for in in vue iterates over the elements of an array.
- likeclockwork 5y agoActually, for ... in does both. It is you who doesn't think that loop does what it actually does. Please read the spec and verify with your favorite JS runtime before continuing this argument.
- zkldi 5y agofor (x in [6,1,6,2,6,3]) { console.log(x); } Please run this in your browser console and tell me if it iterates over the elements of the array.
- manigandham 5y agoIt does exactly what I think it does, which is either iterate over the properties if it's an object or the elements if it's an array. This is true for Vue and Javascript. I suggest you read the documentation I linked earlier. Also Vue's directives are not JS. It's a separate DSL. I've repeated this enough so I'll end this discussion here.
- zkldi 5y ago> This is true for Vue and Javascript. This is not true for javascript at all. for (x in [6,1,6,2,6,3]) { console.log(x); } Please run this in any javascript runtime.
- manigandham 5y agoIn Javascript, `for..in` prints the keys. In an object, the keys are the properties. In an array, the keys are the indexes. If you want the values then use the key to lookup the value from the object or array. Either way it's entirely consistent: an iterator that works on both objects and arrays and prints the keys without guaranteeing order. Does that clear up the confusion?