Internet Explorer中的JS错误-预期的标识符

时间:2019-07-03 08:59:46

标签: javascript jquery arrays internet-explorer

我在Internet Explorer中收到错误“预期标识符”。在所有其他浏览器中均可使用。

                for(var [i, article] of articles.entries()) {
                  if(article.hero) {
                        heroes.unshift(article);
                        articles.splice(i, 1);
                        break;
                    }
                }

对此将提供任何帮助。

谢谢

3 个答案:

答案 0 :(得分:0)

转到 Destructuring assignment compatibility section

基本上,IE不支持使用解构方法,因此您应该修改逻辑以使用更广泛的支持方法。

例如:

for (var i in articles) {
    var article = articles[i];
    if (article.hero) {
        heroes.unshift(article);
        articles.splice(i, 1); // (Pay attention) variable i should be a number.
        break;
    }
}

答案 1 :(得分:0)

以下代码应能正常工作:-

for (var _iterator = articles.entries(), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
  var _ref;

  if (_isArray) {
    if (_i >= _iterator.length) break;
    _ref = _iterator[_i++];
  } else {
    _i = _iterator.next();
    if (_i.done) break;
    _ref = _i.value;
  }

  var _ref2 = _ref,
      i = _ref2[0],
      article = _ref2[1];

  if (article.hero) {
    heroes.unshift(article);
    articles.splice(i, 1);
    break;
  }
}

用于转换javascript代码 参考:-https://babeljs.io/repl

答案 2 :(得分:0)

IE不支持

对象和数组的解构。 Object.entries都不是。 而是尝试使用普通的for循环。

for (var i = 0; i < articles.lenght; articles++) {
  var article = articles[i];
  if (article.hero) {
    heroes.unshift(article);
    articles.splice(i, 1);
    break;
  }
}