3 ms·
The issue with coffeescript is that it uses the opposite syntax to JS - `in` for arrays instead of objects. ES6 introduces the `of` keyword for real iterators s
by phpnode 12y ago
The issue with coffeescript is that it uses the opposite syntax to JS - `in` for arrays instead of objects. ES6 introduces the `of` keyword for real iterators so i don't really want to use that for either of them. It's tricky.
There are other options but they're verbose
every element as key, value from arr {
console.log(key, value);
}
every property as key, value from obj {
console.log(key, value);
}
- Excavator 12y agoThoughts on this? every [key, value] from arr { console.log(key, value); } every {key, value} from obj { console.log(key, value); } every [key] from arr { console.log(key); } every {_, value} from obj { console.log(value); } Looks a bit cramped to me but I get the impression that array comprehension is one of the major reasons that people use Coffeescript, so perhaps it's not too much trouble? There's also the issue with some fonts making it hard to differentiate between { and [ but it's an idea that might be worth to think about at least.
- phpnode 12y agoI quite like this suggestion. If we flip the key, value around to make it inline with what forEach etc do, then we don't need the placeholder for iterating without the key: fast-each [value] from arr { } fast-each {value} from obj { } fast-each [value, key] from arr { } fast-each {value, key} from obj { } The disadvantage is that this looks like array comprehension but isn't. Alternative: fast-properties key, value from obj { } fast-elements index, value from arr { } fast-properties value from obj { } fast-elements value from arr { }