【问题标题】:What to do if Array.from() is not supported for IE? [duplicate]如果 IE 不支持 Array.from() 怎么办? [复制]
【发布时间】:2019-07-16 05:29:13
【问题描述】:

我正在使用所有浏览器都支持的Array.from()函数,除了IE:

function range(start, end) {
    return Array.from(Array(end - start + 1), (_, i) => i + start);
}

我可以使用什么函数代替Array.from() 使我的代码与 IE 兼容?

【问题讨论】:

  • 你试过循环吗?

标签: javascript


【解决方案1】:

使用 Polyfill

if (!Array.from) {
    Array.from = (function () {
        // The code gose here...
    })();
}

如 Mozilla 中所述,请参考以下链接,

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Polyfill

【讨论】:

  • 语法错误临近 Array.from IE 函数 range(start, end) { return Array.from(Array(end - start + 1), (_, i) => i +开始);我在我的 js 文件中使用下面的 Polyfill,但仍然出现语法错误
【解决方案2】:

使用简单的 for 循环

function range(start, end) {
    var array = [];
    for(i = start; i<=end; i++) {
      array.push(i);
    }
    return array;
}
console.log(range(3, 5));

【讨论】:

    【解决方案3】:

    问题不是数组,是箭头函数,试试

    function range(start, end) {
      return Array.from(Array(end - start + 1), function (_, i) { return i + start; });
    }
    

    【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签