javascript - 无法正确找到数据
问题描述
我执行循环,循环中有一行与指定的参数匹配。应出现消息“确定”。相反,我总是得到“否”的结果。
request(
{
url: 'http://localhost:5000/positions/get',
method: 'POST',
headers: headers
},
function (error, response, body) {
console.log('status: ' + response.statusCode)
if (response.statusCode) {
body = JSON.parse(body)
var formData = { Id: 75, Name: 'CEO' }
for (var i = 0; i < body.rows.length; i++ ) {
if (body.rows[i] === formData) {
console.log('Ок')
} else {
console.log('No')
}
}
}
}
)
回答:
> console.log(body.rows)
[ { Id: 1, Name: 'Engineer' }, ..., ... 61 more items ]
解决方案
if (body.rows[i] === formData) {
此行应该是(如果您只想检查 Id)
if (body.rows[i].Id === formData.Id) {
或(如果您想同时检查 Id 和 Name)
if (body.rows[i].Id === formData.Id && body.rows[i].Name === formData.Name ) {
推荐阅读
- javascript - 使用 Vue 在 HTML 页面中查看图像
- maven - 来自 maven 的 outputDirectory 标记的等效 gradle
- python - 用 null 替换字符串的一部分
- reactjs - 为什么 React ESLint 说我必须在这个特定方法中使用“this”?
- svg - 我们可以从 svg 序列创建精灵表吗?
- python - ubuntu 20.04 中带有 Nvidia GPU 安装问题的 Opencv4.2.0
- sql - (N + 1) 选择子地图集合的问题
- python - 更新 mongoDB 对象中数组的选定元素
- tensorflow - 使用 tflearn,得到 ModuleNotFoundError: No module named 'tensorflow.contrib'
- python - 定义从 Raspberry(使用 4G 调制解调器 [Quectel ec25])到 Linux Socket 服务器的 TCP IP 数据传输协议