diff --git a/README.md b/README.md index 8f410e5..858a28d 100644 --- a/README.md +++ b/README.md @@ -141,6 +141,7 @@ then Lodash/Underscore is the better option.* 1. [_.gte](#_gte) 1. [_.isEmpty](#_isempty) 1. [_.isFinite](#_isfinite) +1. [_.isInteger](#_isInteger) 1. [_.isNaN](#_isnan) 1. [_.isNil](#_isnil) 1. [_.isNull](#_isnull) @@ -1719,6 +1720,31 @@ Converts value to a finite number. **[⬆ back to top](#quick-links)** +### _.isInteger + +Checks if value is an integer. + + ```js + // Lodash + console.log(_.isInteger(3)) + // output: true + console.log(_.isInteger('3')) + // output: false + + // Native + console.log(Number.isInteger(3)) + // output: true + console.log(Number.isInteger('3')) + // output: false + ``` +#### Browser Support for `Number.isInteger()` + +![Chrome][chrome-image] | ![Edge][edge-image] | ![Firefox][firefox-image] | ![IE][ie-image] | ![Opera][opera-image] | ![Safari][safari-image] +:-: | :-: | :-: | :-: | :-: | :-: | + ✔ | 12 ✔ | 16.0 ✔ | ✖ | ✔ | ✔ | + +**[⬆ back to top](#quick-links)** + ### _.isNaN Checks if a value is NaN. diff --git a/lib/rules/rules.json b/lib/rules/rules.json index 76cdadd..d102480 100644 --- a/lib/rules/rules.json +++ b/lib/rules/rules.json @@ -148,6 +148,12 @@ "compatible": true, "alternative": "Number.isFinite()" }, + "isInteger": { + "ruleName": "is-integer", + "compatible": true, + "alternative": "Number.isInteger()", + "ES6": true + }, "isNaN": { "ruleName": "is-nan", "compatible": true, diff --git a/tests/lib/rules/all.js b/tests/lib/rules/all.js index 0b4f49e..f897637 100644 --- a/tests/lib/rules/all.js +++ b/tests/lib/rules/all.js @@ -4,7 +4,7 @@ const assert = require('assert'); const rules = require('../../../lib/rules/all'); const allRules = require('../../../lib/rules/rules'); -assert.equal(Object.keys(allRules).length, 57, 'Don\'t miss a rule 😄'); +assert.equal(Object.keys(allRules).length, 58, 'Don\'t miss a rule 😄'); const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 2018, sourceType: "module" } diff --git a/tests/unit/all.js b/tests/unit/all.js index ab9562b..7a58706 100644 --- a/tests/unit/all.js +++ b/tests/unit/all.js @@ -204,6 +204,32 @@ describe('code snippet example', () => { ) }) }) + describe('isInteger', () => { + it('_.isInteger(3)', () => { + assert.equal( + _.isInteger(3), + Number.isInteger(3) + ) + }) + it('_.isInteger("3")', () => { + assert.equal( + _.isInteger("3"), + Number.isInteger("3") + ) + }) + it('_.isInteger(2.9)', () => { + assert.equal( + _.isInteger(2.9), + Number.isInteger(2.9) + ) + }) + it('_.isInteger(NaN)', () => { + assert.equal( + _.isInteger(NaN), + Number.isInteger(NaN) + ) + }) + }) describe('get', () => { const get = (obj, path, defaultValue) => { const result = String.prototype.split.call(path, /[,[\].]+?/)