Comments (2)
Thanks! Just to recap, the current documentation says that
L.branches(p1, ..., pN)
is equivalent toL.branch({[p1]: [], ..., [pN]: []})
which means that the keys are examined in object key order. The proposal is to change the order to match the order of the arguments instead.
🤔
Yeah, I think that change makes sense. It does likely require a bit more code to build the map and it is technically a breaking change, but unlikely to affect most users.
Did you run into a problem due to this?
I could imagine e.g. one using L.forEach
with L.branches
and being surprised due to the traversal order.
from partial.lenses.
@polytypic - I was using branches along with a disperse, I had a collection of ids to update.
L.branches(...formIds)
the formIds were strings of numbers for example: ['1256', '9807', '123'].
Then I would use L.disperse(myBranchesTraversal, [1,2,3], {});
I guess this is another instance of JS behavior being a bit unexpected. As, when the string keys are put into an object they are sorted and then traversed in that order.
Another option may be to create another orderedBranches
that maintains the argument or array order as opposed to the object key order, that way it wouldn't break any users that are relying on the object key order.
Thanks for the quick response by the way!
from partial.lenses.
Related Issues (20)
- Error with react native HOT 3
- Add Node compatible `L.querystring` isomorphism
- Optic doesn't support Symbol. HOT 8
- Consider adding more parsing + stringifying combinators or a separate library
- Consider adding support for Maps and Sets
- Consider adding support for splitting an object into disjoint subsets of keys HOT 1
- Change `L.removable` Take a Predicate? HOT 3
- Consider adding `disperse` operation and `partsOf` lens constructor
- Isomorphism in L.array called with undefined HOT 2
- Index isomorphism HOT 5
- Great Work 👍 Thank you (No issue) HOT 5
- Dealing with exceptions?
- I'd like to L.traverse an object HOT 4
- Usage with JSON Patching? HOT 3
- Add example exercise answers to wiki? HOT 4
- Nested matches for L.satisfying HOT 2
- Modifying a nested data structure? HOT 12
- `L.get` has unexpected behavior HOT 2
- Does not works with Modules object
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from partial.lenses.