GithubHelp home page GithubHelp logo

Comments (12)

darrenscerri avatar darrenscerri commented on April 28, 2024 1

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.

Chalarangelo avatar Chalarangelo commented on April 28, 2024

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.

Chalarangelo avatar Chalarangelo commented on April 28, 2024

Ok, I just fixed the example to show what it should.

from 30-seconds-of-code.

Chalarangelo avatar Chalarangelo commented on April 28, 2024

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.

skatcat31 avatar skatcat31 commented on April 28, 2024

So what I'm hearing is that we should have a ternary/type check for .concat()?

from 30-seconds-of-code.

Chalarangelo avatar Chalarangelo commented on April 28, 2024

@skatcat31 sounds like it! If you want/can, PR it at some point. I want this resolved asap.

from 30-seconds-of-code.

sabareeshkk avatar sabareeshkk commented on April 28, 2024

@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.

skatcat31 avatar skatcat31 commented on April 28, 2024

@sabareeshkk

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.

darrenscerri avatar darrenscerri commented on April 28, 2024

To be honest, don't think adding safety to native APIs is the scope of this repo. Thoughts @Chalarangelo ?

from 30-seconds-of-code.

Chalarangelo avatar Chalarangelo commented on April 28, 2024

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.

Chalarangelo avatar Chalarangelo commented on April 28, 2024

This was resolved (as far as I can tell) in #148.

from 30-seconds-of-code.

lock avatar lock commented on April 28, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.