Javascript 映射项传递操作?

Javascript 映射项传递操作?,javascript,coding-style,code-cleanup,Javascript,Coding Style,Code Cleanup,我希望能够从地图上快速获取条目集。但是entries函数返回一个迭代器。那不是我想要的。当然,我可以编写一个函数来遍历条目并将其构建到条目集,但最好让我的函数说: return map.entries(); 而不是 return buildEntriesArray(map); 除了将迭代器问题包装成一堆针对各种不一致的迭代器/条目集API cruft的修饰调用之外,似乎没有一种干净的方法来编码迭代器问题 let a = [["foo.com", 32], ["bar.foo.com", 12

我希望能够从地图上快速获取条目集。但是
entries
函数返回一个迭代器。那不是我想要的。当然,我可以编写一个函数来遍历条目并将其构建到条目集,但最好让我的函数说:

return map.entries();
而不是

return buildEntriesArray(map);
除了将迭代器问题包装成一堆针对各种不一致的迭代器/条目集API cruft的修饰调用之外,似乎没有一种干净的方法来编码迭代器问题

let a = [["foo.com", 32], ["bar.foo.com", 12]];
let m = new Map(a);
// add to map, etc.
let entries = Object.entries(Object.fromEntries(m.entries()));

如何使它更干净?

[…迭代器]
用它创建数组…
[…迭代器]
用它创建数组…也可以
[…m.entries()]
。此外,如果您正在寻找干净、可读的代码,请始终使用
const
,尽可能不要使用
let
-
let
警告读者您可能正在重新分配变量名。
let
不会警告您可能正在重新分配变量名。事实上,如果词法环境记录上已经存在绑定,
let
声明将导致错误var a=1;设a=2;//错误```我是从代码读取器的角度讲的-无论何时使用
let
,您都在告诉正在阅读代码的人您可能正在重新分配变量。解释器警告/错误与此无关。当您改用
const
时,代码的读取器的认知开销较小。你考虑的重新声明与重新分配不是一回事。重新分配只需要
=
赋值运算符。@Garrett您混淆了重新分配和重新分类。分配变量只是给它一个值
x=1
重新分配就是给它一个新值
x=2
。就这样
let
允许您重新分配值。重新声明试图创建一个同名的新变量
let x;let x
是一个重新声明。也可以
[…m.entries()]
。此外,如果您正在寻找干净、可读的代码,请始终使用
const
,尽可能不要使用
let
-
let
警告读者您可能正在重新分配变量名。
let
不会警告您可能正在重新分配变量名。事实上,如果词法环境记录上已经存在绑定,
let
声明将导致错误var a=1;设a=2;//错误```我是从代码读取器的角度讲的-无论何时使用
let
,您都在告诉正在阅读代码的人您可能正在重新分配变量。解释器警告/错误与此无关。当您改用
const
时,代码的读取器的认知开销较小。你考虑的重新声明与重新分配不是一回事。重新分配只需要
=
赋值运算符。@Garrett您混淆了重新分配和重新分类。分配变量只是给它一个值
x=1
重新分配就是给它一个新值
x=2
。就这样
let
允许您重新分配值。重新声明试图创建一个同名的新变量
let x;设x
为重新声明。
let entries = Array.from(m.entries());