Map.prototype.forEach 没有遍历 Map
Map.prototype.forEach not iterating over Map
我从通过 Sails 模型获得的 MySQL RowDataPacket 数组初始化了一个 Map。然后,当控制台记录该 Map 时,我可以看到结果,但是当我使用 Map.prototype.forEach 遍历 Map 时,它没有迭代。任何人都可以检查我做错了什么吗?
我正在使用以下技术。
网络框架:Sails:1.1.0
运行时间:NodeJs:v8.16.0
打字稿
Javascript: es6
数据库:MySql:5.6
import { Currency } from 'typings/finance';
import sails from "sails"
//Sails Model
const Currency = sails.models.currency
export class CurrencyConverter {
private : convertionRates Map<string, Currency>
public constructor() {
//Get a new Map
this.convertionRates = new Map<string, Currency>()
}
public async inIt() {
//Get Data through sails model object form MySql database
const ConvertionRatesFromDB: Currency[] = await Currency.find()
//Update this.convertionRates Map
for (let ConvertionRateFromDB of ConvertionRatesFromDB) {
this.convertionRates[ConvertionRateFromDB.code] = ConvertionRateFromDB
}
//Data shows here :/
console.log(this.convertionRates);
//But nothing logs here :(
this.convertionRates.forEach(() => console.log("Hello"))
}
}
我希望在控制台中多次登录 Hello
。但是没有输出。
this.convertionRates[ConvertionRateFromDB.code] = ConvertionRateFromDB
未向 convertionRates
映射添加条目。 this.convertionRates.set(ConvertionRateFromDB.code, ConvertionRateFromDB)
会这样做。您的代码将对象 属性 添加到地图对象。
所以最后你的地图是空的,解释了为什么没有记录。
我从通过 Sails 模型获得的 MySQL RowDataPacket 数组初始化了一个 Map。然后,当控制台记录该 Map 时,我可以看到结果,但是当我使用 Map.prototype.forEach 遍历 Map 时,它没有迭代。任何人都可以检查我做错了什么吗?
我正在使用以下技术。 网络框架:Sails:1.1.0 运行时间:NodeJs:v8.16.0 打字稿 Javascript: es6 数据库:MySql:5.6
import { Currency } from 'typings/finance';
import sails from "sails"
//Sails Model
const Currency = sails.models.currency
export class CurrencyConverter {
private : convertionRates Map<string, Currency>
public constructor() {
//Get a new Map
this.convertionRates = new Map<string, Currency>()
}
public async inIt() {
//Get Data through sails model object form MySql database
const ConvertionRatesFromDB: Currency[] = await Currency.find()
//Update this.convertionRates Map
for (let ConvertionRateFromDB of ConvertionRatesFromDB) {
this.convertionRates[ConvertionRateFromDB.code] = ConvertionRateFromDB
}
//Data shows here :/
console.log(this.convertionRates);
//But nothing logs here :(
this.convertionRates.forEach(() => console.log("Hello"))
}
}
我希望在控制台中多次登录 Hello
。但是没有输出。
this.convertionRates[ConvertionRateFromDB.code] = ConvertionRateFromDB
未向 convertionRates
映射添加条目。 this.convertionRates.set(ConvertionRateFromDB.code, ConvertionRateFromDB)
会这样做。您的代码将对象 属性 添加到地图对象。
所以最后你的地图是空的,解释了为什么没有记录。