{
    "concat": {
        "compatible": true,
        "alternative": "Array.prototype.concat()"
    },
    "drop": {
        "compatible": true,
        "alternative": "Array.prototype.slice()"
    },
    "dropRight": {
        "compatible": true,
        "alternative": "Array.prototype.slice()"
    },
    "indexOf": {
        "compatible": true,
        "alternative": "Array.prototype.indexOf()"
    },
    "join": {
        "compatible": true,
        "alternative": "Array.prototype.join()"
    },
    "last": {
        "compatible": true,
        "alternative": "Array.prototype.slice()"
    },
    "lastIndexOf": {
        "compatible": true,
        "alternative": "Array.prototype.lastIndexOf()"
    },
    "reverse": {
        "compatible": true,
        "alternative": "Array.prototype.reverse()"
    },
    "fill": {
        "compatible": true,
        "alternative": "Array.prototype.fill()",
        "ES6": true
    },
    "find": {
        "compatible": false,
        "alternative": "Array.prototype.find()",
        "ES6": true
    },
    "detect": {
        "compatible": true,
        "alternative": "Array.prototype.find()",
        "ES6": true
    },
    "first": {
        "compatible": true,
        "alternative": "Array.prototype.slice()"
    },
    "findIndex": {
        "compatible": false,
        "alternative": "Array.prototype.findIndex()",
        "ES6": true
    },
    "isArray": {
        "compatible": true,
        "alternative": "Array.isArray()"
    },
    "each": {
        "compatible": false,
        "alternative": "Array.prototype.forEach() or Object.entries().forEach()"
    },
    "forEach": {
        "compatible": false,
        "alternative": "Array.prototype.forEach() or Object.entries().forEach()"
    },
    "every": {
        "compatible": false,
        "alternative": "Array.prototype.every()"
    },
    "all": {
        "compatible": false,
        "alternative": "Array.prototype.every()"
    },
    "filter": {
        "compatible": false,
        "alternative": "Array.prototype.filter()"
    },
    "select": {
        "compatible": false,
        "alternative": "Array.prototype.filter()"
    },
    "map": {
        "compatible": false,
        "alternative": "Array.prototype.map()"
    },
    "collect": {
        "compatible": false,
        "alternative": "Array.prototype.map()"
    },
    "reduce": {
        "compatible": false,
        "alternative": "Array.prototype.reduce()"
    },
    "inject": {
        "compatible": false,
        "alternative": "Array.prototype.reduce()"
    },
    "foldl": {
        "compatible": false,
        "alternative": "Array.prototype.reduce()"
    },
    "reduceRight": {
        "compatible": false,
        "alternative": "Array.prototype.reduceRight()"
    },
    "foldr": {
        "compatible": false,
        "alternative": "Array.prototype.reduceRight()"
    },
    "size": {
        "compatible": false,
        "alternative": "Array.prototype.length"
    },
    "some": {
        "compatible": false,
        "alternative": "Array.prototype.some()"
    },
    "any": {
        "compatible": false,
        "alternative": "Array.prototype.some()"
    },
    "includes": {
        "compatible": false,
        "alternative": "Array.prototype.includes()",
        "ES6": true
    },
    "contains": {
        "compatible": false,
        "alternative": "Array.prototype.includes()",
        "ES6": true
    },
    "slice": {
        "compatible": true,
        "alternative": "Array.prototype.slice()"
    },
    "takeRight": {
        "compatible": false,
        "alternative": "Array.prototype.slice()"
    },
    "bind": {
        "ruleName": "bind",
        "compatible": true,
        "alternative": "Function.prototype.bind()"
    },
    "isFinite": {
        "compatible": true,
        "alternative": "Number.isFinite()"
    },
    "isInteger": {
        "ruleName": "is-integer",
        "compatible": true,
        "alternative": "Number.isInteger()",
        "ES6": true
    },
    "isNaN": {
        "ruleName": "is-nan",
        "compatible": true,
        "alternative": "Number.isNaN()",
        "ES6": true
    },
    "isNil": {
        "ruleName": "is-nil",
        "compatible": true,
        "alternative": "value === null || value === undefined"
    },
    "isNull": {
        "ruleName": "is-null",
        "compatible": true,
        "alternative": "value === null"
    },
    "isUndefined": {
        "ruleName": "is-undefined",
        "compatible": true,
        "alternative": "value === undefined"
    },
    "keys": {
        "compatible": true,
        "alternative": "Object.keys()"
    },
    "extendOwn": {
        "compatible": true,
        "alternative": "Object.assign()",
        "ES6": true
    },
    "assign": {
        "compatible": true,
        "alternative": "Object.assign()",
        "ES6": true
    },
    "values": {
        "compatible": true,
        "alternative": "Object.values()",
        "ES6": true
    },
    "entries": {
        "compatible": true,
        "alternative": "Object.entries()",
        "ES6": true
    },
    "toPairs": {
        "compatible": true,
        "alternative": "Object.entries()",
        "ES6": true
    },
    "pairs": {
        "compatible": true,
        "alternative": "Object.entries()",
        "ES6": true
    },
    "get": {
        "compatible": false,
        "alternative": "optional chaining to get nested values and nullish coalescing operator for fallback values",
        "ES11": true
    },
    "split": {
        "compatible": true,
        "alternative": "String.prototype.split()"
    },
    "startsWith": {
        "ruleName": "starts-with",
        "compatible": true,
        "alternative": "String.prototype.startsWith()"
    },
    "endsWith": {
        "ruleName": "ends-with",
        "compatible": true,
        "alternative": "String.prototype.endsWith()"
    },
    "toLower": {
        "compatible": true,
        "alternative": "String.prototype.toLowerCase()"
    },
    "toUpper": {
        "compatible": true,
        "alternative": "String.prototype.toUpperCase()"
    },
    "trim": {
        "compatible": true,
        "alternative": "String.prototype.trim()"
    },
    "padStart": {
        "compatible": true,
        "alternative": "String.prototype.padStart()",
        "ES6": true
    },
    "padEnd": {
        "compatible": true,
        "alternative": "String.prototype.padEnd()",
        "ES6": true
    },
    "repeat": {
        "compatible": true,
        "alternative": "String.prototype.repeat()",
        "ES6": true
    },
    "uniq": {
        "compatible": true,
        "alternative": "[... new Set(arr)]",
        "ES6": true
    },
    "replace": {
        "compatible": true,
        "alternative": "String.prototype.replace()"
    },
    "omit": {
        "compatible": true,
        "alternative": "{a, b, c, ...notOmittedValues}",
        "ES6": true
    },
    "flatten": {
        "compatible": true,
        "alternative": "Array.prototype.reduce((a,b) => a.concat(b), [])"
    },
    "throttle": {
        "compatible": true,
        "alternative": "Example of native implementation: https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_throttle"
    },
    "isString": {
        "compatible": true,
        "alternative": "str && typeof str.valueOf() === \"string\""
    },
    "castArray": {
        "compatible": true,
        "alternative": "Array.isArray(arr) ? arr : [arr]"
    },
    "isFunction": {
        "compatible": true,
        "alternative": "typeof func === \"function\""
    }
}
