Skip to content

Instantly share code, notes, and snippets.

@wilmoore
Last active December 11, 2024 17:19
Show Gist options
  • Select an option

  • Save wilmoore/9bd87ff6a52a84d3e4b30e55dda57c85 to your computer and use it in GitHub Desktop.

Select an option

Save wilmoore/9bd87ff6a52a84d3e4b30e55dda57c85 to your computer and use it in GitHub Desktop.
array-zip

array-zip

⪼ Made with 💜 by Polyglot.

related

array-zip

> combine = (a, b) => a.reduce((out, val, idx) => Object.assign(out, { [val]: b[idx] }), {})
[Function: combine]
> combine(a, b)
{ green: 'avocado', red: 'apple', yellow: 'banana' }
> a
[ 'green', 'red', 'yellow' ]
> b
[ 'avocado', 'apple', 'banana' ]
> const c = ['green', 'avocado', 'red', 'apple', 'yellow', 'banana']
undefined
> c.filter((_, idx) => idx % 2 === 0)
[ 'green', 'red', 'yellow' ]
> c.filter((_, idx) => idx % 2 === 1)
[ 'avocado', 'apple', 'banana' ]
> combine(c.filter((_, idx) => idx % 2 === 0), c.filter((_, idx) => idx % 2 === 1))
{ green: 'avocado', red: 'apple', yellow: 'banana' }
> let array_combine = (a, b) => (b) ? combine(a, b) : combine(c.filter((_, idx) => idx % 2 === 0), c.filter((_, idx) => idx % 2 === 1))
undefined
> array_combine(a, b)
{ green: 'avocado', red: 'apple', yellow: 'banana' }
> array_combine(c)
{ green: 'avocado', red: 'apple', yellow: 'banana' }
> let tuples = [['green', 'avocado'], ['red', 'apple'], ['yellow', 'banana']]
undefined
> tuples
[ [ 'green', 'avocado' ], [ 'red', 'apple' ], [ 'yellow', 'banana' ] ]
> Map(tuples)
Uncaught TypeError: Constructor Map requires 'new'
    at Map (<anonymous>)
> new Map(tuples)
Map(3) { 'green' => 'avocado', 'red' => 'apple', 'yellow' => 'banana' }
> new Map(tuples).toEntries()
Uncaught TypeError: (intermediate value).toEntries is not a function
> (new Map(tuples)).toEntries()
Uncaught TypeError: (intermediate value).toEntries is not a function
> (new Map(tuples)).entries
[Function: entries]
> (new Map(tuples)).entries()
[Map Entries] {
  [ 'green', 'avocado' ],
  [ 'red', 'apple' ],
  [ 'yellow', 'banana' ]
}
> Object.fromEntries(tuples)
{ green: 'avocado', red: 'apple', yellow: 'banana' }
>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment