You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
2.4 KiB

[![Coveralls – test coverage
](https://img.shields.io/coveralls/studio-b12/array-from.svg?style=flat-square
)](https://coveralls.io/r/studio-b12/array-from
)[![Travis – build status
](https://img.shields.io/travis/studio-b12/array-from/master.svg?style=flat-square
)](https://travis-ci.org/studio-b12/array-from
)[![David – status of dependencies
](https://img.shields.io/david/studio-b12/array-from.svg?style=flat-square
)](https://david-dm.org/studio-b12/array-from
)[![Code style: airbnb
](https://img.shields.io/badge/code%20style-airbnb-777777.svg?style=flat-square
)](https://github.com/airbnb/javascript)
array-from
==========
**A ponyfill for the ES 2015 [`Array.from()`][].**
*** Ponyfill**: A polyfill that doesn't overwrite the native method.
*** ES 2015**: The new name for ES6 that [nobody expected][].
Modeled after the final ES 2015 spec. Credits for the implementation go to the amazing folks of the MDN and the amazing guy [@barberboy](https://github.com/barberboy).
 
[`Array.from()`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from "Array.from()"
[nobody expected]: http://webreflection.blogspot.de/2015/01/javascript-and-living-ecmascript.html "JavaScript and the living ECMAScript Standard"
Installation
------------
```sh
$ npm install array-from
```
Usage
-----
Recommended:
```js
var arrayFrom = require('array-from');
// You’ll get the native `Array.from` if it’s available.
function () {console.log(
arrayFrom(arguments).map(require('1-liners/increment'))
);}(1, 2, 3);
//» [2, 3, 4]
```
You can also use it as a classical polyfill. It’s [not recommended][], but sometimes practical:
```js
if (!Array.from) Array.from = require('array-from');
// This will affect all loaded modules.
function () {console.log(
Array.from(arguments).map(require('1-liners/increment'))
);}(1, 2, 3);
//» [2, 3, 4]
```
[not recommended]: https://github.com/sindresorhus/object-assign/issues/10#issuecomment-65065859 "Optionally shim native method?"
Support note
------------
We support the _current_ and _active LTS_ release of Node.js. More info in [nodejs/LTS](https://github.com/nodejs/LTS#lts_schedule).
License
-------
[MIT][] © [Studio B12 GmbH][]
[MIT]: ./License.md
[Studio B12 GmbH]: https://github.com/studio-b12