在javascript中声明for循环函数
Declaring a for loop function in javascript
我有一个for循环搜索数组中的值在我的javascript代码在couchDb。我想把它变成一个函数。这应该是相当简单的,但我有麻烦。这是for循环(它工作得很好):
if (newDoc.destination && newDoc.destination.length > 0) {
for (var i = 0; i < newDoc.destination.length; i++) {
if (newDoc.destination[i].address) return;
}
}
throw({forbidden: 'doc.address is required'});
我将它包装成一个函数:
function arrayReq(field, message) {
message = message || "Array must have a " + field;
if (newDoc.destination && newDoc.destination.length > 0) {
for (var i = 0; i < newDoc.destination.length; i++) {
if (newDoc.destination[i].field) return;
}
}
throw({forbidden: message});
}
我认为函数中的返回应该阻止函数进一步运行,但它仍然抛出错误。有人能告诉我我做错了什么吗?顺便说一句,如果我将字段更改为地址,它可以正常工作。我可以不把地址变成可变变量吗?
我认为问题是你试图使用field
作为字符串变量,以及destination[]
数组内对象的属性。
在您的代码中,如果destination[i]
对象没有一个称为field
的属性(不是在field
参数中填充的字符串值,而是一个名为"field"的实际属性),它将永远不会计算为true并脱离函数。
要在javascript中使用字符串表示来访问对象的属性,可以使用indexer语法。
尝试将array.destination[i].field
更改为array.destination[i][field]
相关文章:
- JavaScript/Jquery:一个特殊用途的for循环函数
- 为循环函数中的元素指定单击
- Jquery下一个和上一个按钮循环函数
- 循环函数(Javascript回调帮助)
- 循环函数不起作用
- 使用ajax调用循环函数
- 在Javascript中修改循环函数的参数
- 如何循环函数数组并在单击时一次执行一个
- 设置超时可以保存我的循环函数不被视为无响应
- 具有超时的循环函数
- j查询如何在一系列延迟后循环函数
- 如何将 JavaScript forEach 循环/函数转换为 CoffeeScript
- for 循环函数似乎未运行
- 对于内部循环函数(新手)
- 循环函数会导致它在 javascript 中无响应
- 循环函数
- 如何优化循环函数
- JS拒绝循环函数
- 中断循环函数
- 在 JavaScript 中循环函数可以吗?