javascript - JSON 解析图不是函数
问题描述
当我制作数据地图时,我得到了错误。问题出在哪里?
错误:UnhandledPromiseRejectionWarning:TypeError:betsModel.map 不是函数
axios 响应(字符串!):
var betsModel = {"13721":{"IdG":"1","N":"[] - 1","T":7,"A":true},"13722":{"IdG":"1","N":"[] - 2","T":7,"A":true},"6352":{"IdG":"1","N":"Zaman Sona Erdiğinde Beraberlik","T":1,"A":true}};
解析器
module.exports = (req, res) => {
var uri = 'x';
Axios({
method: "GET",
url: uri,
timeout: 5000
}).then(async response => {
var e = response.data.match(/\= \{(.*?)\}\}\;/g);
var betsModel = e[1].replace(/= /g,'');
betsModel = JSON.parse(betsModel.replace(/}};/g,'}}'));
betsModel.map(a => {
console.log(a);
});
});
}
解决方案
对象迭代和数组迭代是两个不同的东西。这里的“betsModel”是一个对象。因此地图功能将不起作用。
实现你所做的事情的方法很少。
1. Object.Values MDN 参考 Object.Values
Object.values(betsModel).map(value => {
console.log(a);
});
2. For In MDN 参考 for , FOR IN
for (const prop in betsModel) {
if (betsModel.hasOwnProperty(prop)) {
console.log(`obj.${prop} = ${obj[prop]}`);
}
}
这是一个类似的问题 How to loop through a plain JavaScript object with the objects as members
推荐阅读
- node.js - 如何使用 Jest 在我的数据库中创建一个默认项目,以便我可以测试我的 API CRUD 操作?
- javascript - 为什么在将 Wasm 捆绑在一起后会出现错误“响应具有不支持的 MIME 类型”,但在使用 webpack 开发服务器服务时却没有?
- excel - 转换为截断前导零的文本
- python - 使用 sklearn.cluster.SpectralClustering 查找簇质心或“.means_”
- haskell - 计算期间在环境中隐式携带 STRef
- python - for循环中的空变量
- javascript - 如何使用 Anime.js 创建阅读位置指示器
- java - Kafka 消费者分配返回空集
- node.js - img src 属性将我的请求发送到不同的路由
- javascript - 未通过 Redux 处理的 Promise