小编ben*_*nto的帖子

在Javascript中测试嵌套对象未定义

可能重复:
javascript测试是否存在嵌套对象键

我试图构建一个错误消息formset通过测试,如果某个对象是没有 undefined的,如果它不是undefined,那么我结束了该错误信息填充它.主要的问题是我必须验证每个嵌套对象是否是undefined,这导致一些相当丑陋的代码.这是一个例子:

errorsForField: function(fieldName, formsetName, formNumber) {
            if (typeof this.model.errors != 'undefined'){

                var fieldError = document.createElement('span');
                $(fieldError).addClass('field-error');

                // THE FOLLOWING LINE THROWS ERROR.
                if (formsetName && _.isUndefined(this.model.errors[formsetName][fieldName]) != true) {
                    $(fieldError).text(this.model.errors[formsetname][fieldName]);
                } else if (typeof this.model.errors[fieldName] != "undefined"){
                    $(fieldError).text(this.model.errors[fieldName]);
                }

                this.errors[fieldName] = fieldError.outerHTML;
                return fieldError.outerHTML; 
            }
            return false; 
        },
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,指出我不能确定[fieldName]undefined object this.model.errors[formsetName].换句话说,我必须先确定是否this.model.errors[formsetName]为空,然后测试是否[fieldname]为空undefined.

这似乎是一个非常麻烦的解决方案.有任何改变这个的建议吗?

javascript properties object

4
推荐指数
1
解决办法
3206
查看次数

jQuery中的Javascript .files [0]属性

在jQuery中是否有与此语句等效的内容?

var value = document.getElementById(id).files[0];
Run Code Online (Sandbox Code Playgroud)

使用附加.files [0]的标准jQuery选择器似乎不起作用,我找不到.files的等效jQuery命令.有什么建议?

我正在使用它从input type ='file'表单元素中检索文件.

javascript jquery multipartform-data

3
推荐指数
1
解决办法
1万
查看次数

有效地找到落在一定数量范围内的物体

这是我的基本问题:我得到了一个currentTime.例如,750秒.我也有其含有1000〜2000的对象,其每一个有一个的阵列startTime,endTime和一个_id属性.鉴于此currentTime,我需要找到具有a startTimeendTime属于该范围的对象 - 例如startTime : 740,endTime : 755.

在Javascript中执行此操作的最有效方法是什么?

对于初学者来说,我只是做了这样的事情:

var arrayLength = array.length; 
var x = 0;
while (x < arrayLength) {
 if (currentTime >= array[x].startTime && currentTime <= array[x].endTime) {
  // then I've found my object
 }
x++;
};
Run Code Online (Sandbox Code Playgroud)

但我怀疑循环不是这里的最佳选择.有什么建议?

编辑:为了清楚起见,currentTime必须落在startTimeendTime

我的解决方案:我的数据结构为我提供了一些好处,使我能够简化一些事情.我已按照建议完成了基本二进制搜索,因为数组已经按startTime排序.我还没有完全测试过这个东西的速度,但我怀疑它的速度要快一些,特别是对于更大的阵列.

var binarySearch = function(array, currentTime) {

  var low = 0;
  var high = …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm time loops

2
推荐指数
1
解决办法
365
查看次数

mongoose在查找功能中没有提供错误

在尝试用Mongoose构造一些静态时,我似乎无法在调用find()或findOne()时访问error参数.这是我的静态:

User.statics.authenticate = function(login, password, cb){
    return this.model('User').findOne({
        username: login, 
        password: password
    }, function(err, user){
        console.log("error", err);
        console.log("user", user);
    }).exec(cb);
};
Run Code Online (Sandbox Code Playgroud)

我试着用这样的东西来称它:

exports.session = function(req, res){
    return User.authenticate(req.body.login, req.body.password, function(err, doc){
        console.log('err', err);
        console.log('doc', doc);
    });
};
Run Code Online (Sandbox Code Playgroud)

在任何情况下,无论findOne查询的结果如何,err始终为null.关于这里发生了什么的任何想法?也许我无法绕过所有这些回调......

javascript mongoose node.js express

1
推荐指数
1
解决办法
1916
查看次数

SQL查询以查找具有特定数量关联的行

使用Postgres我有一个有conversations和的模式conversationUsers.每个conversation都有很多conversationUsers.我希望能够找到具有确切指定数量的对话conversationUsers.换句话说,提供了一个userIds(例如[1, 4, 6])我希望能够找到仅包含那些用户的对话的数组,而不是更多.

到目前为止,我试过这个:

SELECT c."conversationId"
FROM "conversationUsers" c
WHERE c."userId" IN (1, 4)
GROUP BY c."conversationId"
HAVING COUNT(c."userId") = 2;
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎也回归了包括这两个用户在内的对话.(例如,如果对话还包括"userId"5 ,则返回结果).

sql postgresql sequelize.js relational-division

1
推荐指数
1
解决办法
138
查看次数