当我在页面上打开调试器控制台时,我运行:'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/150
提交
取消