Comments (12)
Right, the only advantage of Lodash's concat
is safety. arr
can be a non-array value and the function would not throw an error. ArrayConcat
doesn't provide this safety, so essentially it is identical to Array.concat
in terms of behaviour, functionality and safety.
from 30-seconds-of-code.
I didn't test, I thought it was working, seemed simple enough. The idea was to duplicate lodash's concat
behavior. Any suggested fixes or improvements?
from 30-seconds-of-code.
Ok, I just fixed the example to show what it should.
from 30-seconds-of-code.
Great point! I am reading lodash's concat
and I see what you mean. We should improve our arrayConcat
to provide the same functionality. PR anyone?
from 30-seconds-of-code.
So what I'm hearing is that we should have a ternary/type check for .concat()
?
from 30-seconds-of-code.
@skatcat31 sounds like it! If you want/can, PR it at some point. I want this resolved asap.
from 30-seconds-of-code.
@darrenscerri @Chalarangelo this will do the trick right?
const arrayCo ncat = (arr, ...args) => [].concat(arr, ...args);
this creates a new array and no error thrown the arr is not an array
from 30-seconds-of-code.
arrayConcat({}, {}) // [{},{}]
There are many other odd edge cases with that sort of thing. maybe just let it crash. If the developer tried to concat something without type checking it, wouldn't the best option be to let the error bubble in proper design?
from 30-seconds-of-code.
To be honest, don't think adding safety to native APIs is the scope of this repo. Thoughts @Chalarangelo ?
from 30-seconds-of-code.
I wrote the snippet to implement lodash's concat
which in itself is something between a polyfill and a method that deals with some corner cases. I wouldn't mind keeping the improved snippet, just to showcase the technique, but we might not actually need it in the long run. I'll probably merge the PR with the change and let it sit for a while untagged while we discuss this further.
from 30-seconds-of-code.
This was resolved (as far as I can tell) in #148.
from 30-seconds-of-code.
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for any follow-up tasks.
from 30-seconds-of-code.
Related Issues (20)
- Merge two arrays and remove duplicate elements HOT 2
- CSVToArray will return an empty item for documents ending with \n HOT 2
- addDaysToDate fails with non-UTC timezone HOT 1
- A snippet folder dedicated to Angular
- Js
- Broken links HOT 4
- New snippet ideas HOT 1
- passive-scroll-listener-performance has obsolete/incorrect advice HOT 2
- Regarding the throttle function's question. HOT 7
- style: Centering the footer section ⏡ HOT 2
- Website Navigation Bar
- cookie parsing containing a `=` in value HOT 5
- [ BUG ] Missing space in footer section HOT 12
- Typo in the event-loop-explained.md snippet HOT 2
- fix: Unnecessary parameter in Queue class methods HOT 2
- Terminology issue in blog HOT 4
- :bug: Fix Footer settingsPath (GithHub,CC ,30-sec-of-code Link)
- Kindly add hacktoberfest label to your repo. HOT 1
- [Feature Request] : The border of search bar is not clearly visible .
- Typo on the website
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 30-seconds-of-code.