我只是一直在学习JavaScript的几个星期,这是我的第一篇文章,以便道歉,如果我的问题不是很清楚。我使用过地图的街道和它们的长度在地图的原型循环在foreach方法。在地图的原型的键值对是否正确即:
0:{ “amesSt”=> 500}键: “amesSt” 值:500)
然而,项时好像作为在的forEach参数,这意味着键变成值和值将成为关键翻转。
console.log('==============STREET REPORT==============')
// key = 'amesSt', value = 500
const streetLengths = new Map();
streetLengths.set('amesSt', 500);
streetLengths.set('bentonSt', 1200);
streetLengths.set('chaseSt', 750);
streetLengths.set('depewSt', 200);
console.log(streetLengths);
// classify streets
function streetClass(key, value) {
if (value < 250) {
console.log(`${key} Street is classified as small`);
} else if (value >= 250 && value < 600) {
console.log(`${key} Street is classified as normal`);
} else if (value >= 600 && value < 1000) {
console.log(`${key} Street is classified as big`);
} else if (value >= 1000){
console.log(`${key} Street is classified as huge`);
} else{
console.log('Normal');
};
};
console.log('Size classification:');
//key = 500, value = 'amesSt'
streetLengths.forEach((key, value) => {
streetClass(key, value);
});
我想对于要存储在foreach循环和价值的关键变量的键值存储在变量的值。我目前使用VS代码v1.34.0。先谢谢您的帮助!
正如可以在该文档中看到:Javascript forEach(),在foreach方法接收回调作为第一个参数,该回调可以接收三个参数:CurrentValue的,索引,阵列,以该顺序。
那么,你是颠倒顺序的参数。它应该是:
streetLengths.forEach((value, key) => {
streetClass(key, value);
});
当我们反复使用地图的forEach过来,第一个参数是值,第二个是keyiterating over Map using forEach
在你的函数你正在考虑的第一个参数为“钥匙”