IE Console Error: SCRIPT438: Object doesn't support property or method 'from'
IE Console Error: SCRIPT438: Object doesn't support property or method 'from'
我的网站上有一个函数,它接受一组电子邮件字符串并删除所有重复项。但是在ie上不行,因为我用的是Array.from方法。如何转换为以下代码以在 ie 上工作?
let emailsListArray = ['reece@gmail.com', 'someone@gmail.com', 'another@gmail.com', 'reece@gmail.com', 'person@gmail.com', 'another@gmail.com'];
Array.prototype.unique = function() {
return Array.from(new Set(this));
}
emailsListArray = emailsListArray.unique();
console.log(emailsListArray);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
而且 Set 方法在 ie 中没有完全支持,所以你有 2 个解决方案:
1:只需使用与所有导航器兼容的数组方法:例如,您可以使用此代码:
Array.prototype.unique = function () {
return this.reduce(function (acc, el) {
return acc.indexOf(el) === -1 ? acc.concat(el) : acc;
}, []);
};
2: 添加 polyfill 文件到项目你可以在这里找到 array.from polyfill 的例子:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from
我的网站上有一个函数,它接受一组电子邮件字符串并删除所有重复项。但是在ie上不行,因为我用的是Array.from方法。如何转换为以下代码以在 ie 上工作?
let emailsListArray = ['reece@gmail.com', 'someone@gmail.com', 'another@gmail.com', 'reece@gmail.com', 'person@gmail.com', 'another@gmail.com'];
Array.prototype.unique = function() {
return Array.from(new Set(this));
}
emailsListArray = emailsListArray.unique();
console.log(emailsListArray);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
而且 Set 方法在 ie 中没有完全支持,所以你有 2 个解决方案:
1:只需使用与所有导航器兼容的数组方法:例如,您可以使用此代码:
Array.prototype.unique = function () {
return this.reduce(function (acc, el) {
return acc.indexOf(el) === -1 ? acc.concat(el) : acc;
}, []);
};
2: 添加 polyfill 文件到项目你可以在这里找到 array.from polyfill 的例子: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from