fill() not supported in IE11

后端 未结 2 774
终归单人心
终归单人心 2021-01-20 02:49

I have the following syntax. I am new to ES6 syntax.

const renderLoading = () => Array(20).fill(\'\').map(() => );
2条回答
  •  执念已碎
    2021-01-20 03:32

    And this is a TypeScript compliant variant:

    if (!Array.prototype.fill) {
        Object.defineProperty(Array.prototype, 'fill', {
            value: function(value) {
    
                if (this == null) {
                    throw new TypeError('this is null or not defined');
                }
    
                const O = Object(this);
                // tslint:disable-next-line:no-bitwise
                const len = O.length >>> 0;
                const start = arguments[1];
                // tslint:disable-next-line:no-bitwise
                const relativeStart = start >> 0;
    
                let k = relativeStart < 0 ?
                    Math.max(len + relativeStart, 0) :
                    Math.min(relativeStart, len);
    
                const end = arguments[2];
                // tslint:disable-next-line:no-bitwise
                const relativeEnd = end === undefined ? len : end >> 0;
    
                const final = relativeEnd < 0 ?
                    Math.max(len + relativeEnd, 0) :
                    Math.min(relativeEnd, len);
    
                while (k < final) {
                    O[k] = value;
                    k++;
                }
    
                return O;
            }
        });
    }
    

提交回复
热议问题