在调试器控制台中运行es6

时间:2019-06-14 07:52:20

标签: javascript ecmascript-6 google-chrome-devtools javascript-objects

当我在页面上打开调试器控制台并运行时:

'use strict'
const userMap = new Map();
userMap.set("1", {id: 200})
userMap.set("2", {id: 301})
userMap.set("3", {id: 102})
[...userMap].sort((a, b)=> {
  console.log(a[1], b[1])
  return a[1] - b[1]
})

..

我会得到一个错误:

Uncaught SyntaxError: Unexpected token ...

现在,当我使用丑陋的setTimeout()时:

'use strict'
const userMap = new Map();
userMap.set("1", {id: 200})
userMap.set("2", {id: 301})
userMap.set("3", {id: 102})
setTimeout(() => {
    [...userMap].sort((a, b)=> {
      console.log(a[1], b[1])
      return a[1] - b[1]
    })
})

现在错误不存在了。

我只是想知道为什么会这样?

更新,这对我有用

'use strict'
const userMap = new Map();
userMap.set("1", {id: 100});
userMap.set("2", {id: 300});
userMap.set("3", {id: 111});
const sortBy = (sortMap, name) => {
  return [...sortMap.values()].sort((a, b)=> {
    return a[name] - b[name];
  });
};
const sorted = sortBy(userMap, "id");
console.log(sorted);

1 个答案:

答案 0 :(得分:0)

我认为您在行尾缺少分号:

grid