最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

javascript - I get a syntax error in IE but not in Chrome - Stack Overflow

matteradmin4PV0评论

So I have this code (a function) that works in Google Chrome/Fire Fox but not in IE. If I ment this certain line, everything runs fine, except that line is crucial.

I have this function called ReadCookie, which basically just stores the cookies into an array called cookiearray.

function ReadCookie() {

var allcookies = document.cookie; //variable called "allcookies" stores all the cookies.
cookiearray = allcookies.split(';').map(c => c.split('=')[1]); //cookiearray is an array that has all the values as strings.

}

IE said that the 4th line is incorrect cookiearray = allcookies.split(';').map(c => c.split('=')[1]); but I don't know why.

Thanks!

So I have this code (a function) that works in Google Chrome/Fire Fox but not in IE. If I ment this certain line, everything runs fine, except that line is crucial.

I have this function called ReadCookie, which basically just stores the cookies into an array called cookiearray.

function ReadCookie() {

var allcookies = document.cookie; //variable called "allcookies" stores all the cookies.
cookiearray = allcookies.split(';').map(c => c.split('=')[1]); //cookiearray is an array that has all the values as strings.

}

IE said that the 4th line is incorrect cookiearray = allcookies.split(';').map(c => c.split('=')[1]); but I don't know why.

Thanks!

Share Improve this question asked Jun 11, 2016 at 22:39 EdwinEdwin 4001 gold badge5 silver badges19 bronze badges 2
  • 1 you could also try a syntax from some future ES7 working draft for instance. If you really want your production code to work - you'll stick to using a standard JS syntax and methods instead. – Bekim Bacaj Commented Jun 11, 2016 at 22:50
  • @BekimBacaj Or using a transpiler.. :D – user2864740 Commented Jun 11, 2016 at 23:01
Add a ment  | 

3 Answers 3

Reset to default 4

Arrow functions (like c => c.split('=')[1]) are a new feature in ES6. Chrome supports them. Internet Explorer does not.

I believe it's an ECMA script 6 thing with the way you're using the map.

So you can write it like this instead:

cookiearray = allcookies.split(';').map(function (c) {
  return c.split('=')[1];
}); //cookiearray is an array that has all the values as strings.

The solution I implemented was as follows

  1. goto: https://babeljs.io/repl

  2. Paste in your code and select es2015.

  3. In your new code paste the following, if you are using forEach (which is again not supported in IE) :

    if (window.NodeList && !NodeList.prototype.forEach) { NodeList.prototype.forEach = Array.prototype.forEach; }

  4. Use indexOf instead of includes

Post a comment

comment list (0)

  1. No comments so far