An ES7/ES2016 spec-compliant Array.prototype.includes shim/polyfill/replacement that works as far down as ES3.
This package implements the es-shim API interface. It works in an ES3-supported environment and complies with the proposed spec.
Because Array.prototype.includes depends on a receiver (the this value), the main export takes the array to operate on as the first argument.
Engines that need this package include:
- IE (all versions)
- Safari < 9
- Firefox < 43, and 99-101
- Chrome < 47
- Edge < 14
- node < 6
npm install --save array-includesBasic usage: includes(array, value[, fromIndex=0])
varincludes=require('array-includes');varassert=require('assert');vararr=['one','two'];includes(arr,'one');// trueincludes(arr,'three');// falseincludes(arr,'one',1);// falsevararr=[1,'foo',NaN,-0];assert.equal(arr.indexOf(0)>-1,true);assert.equal(arr.indexOf(-0)>-1,true);assert.equal(includes(arr,0),true);assert.equal(includes(arr,-0),true);assert.equal(arr.indexOf(NaN)>-1,false);assert.equal(includes(arr,NaN),true);assert.equal(includes(arr,'foo',0),true);assert.equal(includes(arr,'foo',1),true);assert.equal(includes(arr,'foo',2),false);/* when Array#includes is not present */deleteArray.prototype.includes;varshimmedIncludes=includes.shim();assert.equal(shimmedIncludes,includes.getPolyfill());assert.equal(arr.includes('foo',1),includes(arr,'foo',1));/* when Array#includes is present */varshimmedIncludes=includes.shim();assert.equal(shimmedIncludes,Array.prototype.includes);assert.equal(arr.includes(1,'foo'),includes(arr,1,'foo'));Simply clone the repo, npm install, and run npm test
