当我在页面上打开调试器控制台并运行时:
'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);
答案 0 :(得分:0)
我认为您在行尾缺少分号:
grid