Javascript类型错误:无法调用方法';切片';未定义的

Javascript类型错误:无法调用方法';切片';未定义的,javascript,parse-platform,parse-cloud-code,Javascript,Parse Platform,Parse Cloud Code,我目前正在学习javascript,以便编写一个简单的解析云代码脚本。不幸的是,我在下面发布的错误似乎很常见,不幸的是,我在这方面缺乏技能,即使有可用的资源,也无法解决问题 非常感谢您提供任何解决方案、教程或解释 错误(由iOS应用程序记录): 调用'updateLastSeen'函数时出错:错误域=解析代码=141“类型错误:无法调用未定义的 在e.query.first.success(main.js:11:58) 在e.(Parse.js:14:28998) 在e.i(Parse.js:1

我目前正在学习javascript,以便编写一个简单的解析云代码脚本。不幸的是,我在下面发布的错误似乎很常见,不幸的是,我在这方面缺乏技能,即使有可用的资源,也无法解决问题

非常感谢您提供任何解决方案、教程或解释

错误(由iOS应用程序记录):

调用'updateLastSeen'函数时出错:错误域=解析代码=141“类型错误:无法调用未定义的 在e.query.first.success(main.js:11:58) 在e.(Parse.js:14:28998) 在e.i(Parse.js:14:27703) 在e.a.value(Parse.js:14:27063) 在e.i(Parse.js:14:27830) 在e.a.value(Parse.js:14:27063) 在e.i(Parse.js:14:27830) 在e.a.value(Parse.js:14:27063) 在e.(Parse.js:14:27774) 在e.i(Parse.js:14:27703)“UserInfo={code=141,temporary=0,error=TypeError:无法调用未定义的 在e.query.first.success(main.js:11:58) 在e.(Parse.js:14:28998) 在e.i(Parse.js:14:27703) 在e.a.value(Parse.js:14:27063) 在e.i(Parse.js:14:27830) 在e.a.value(Parse.js:14:27063) 在e.i(Parse.js:14:27830) 在e.a.value(Parse.js:14:27063) 在e.(Parse.js:14:27774) 在e.i(Parse.js:14:27703)中,NSLocalizedDescription=TypeError:无法调用未定义的 在e.query.first.success(main.js:11:58) 在e.(Parse.js:14:28998) 在e.i(Parse.js:14:27703) 在e.a.value(Parse.js:14:27063) 在e.i(Parse.js:14:27830) 在e.a.value(Parse.js:14:27063) 在e.i(Parse.js:14:27830) 在e.a.value(Parse.js:14:27063) 在e.(Parse.js:14:27774) 在e.i(Parse.js:14:27703)} Main.js CloudCode脚本(相关部分):

var query=newparse.query(Parse.User);
query.equalTo('email',request.params.email);
第一个问题({
成功:功能(用户){
var mutableLastSeeIndicationArresArray=user.lastSeen.slice(0);
对于(变量i=0;i

谢谢。

所以问题是数组的.lastSeens属性为空,因此未定义(null)

解决方案是实现一个检查
if(typeof user.lastSeens==“undefined”){…}
并相应地处理


感谢@danh为我指出了正确的方向。

错误表明
user.lastSeen
未定义的。我们需要看到该行前面的代码,而不是后面的代码。@JamesThorpe更新了代码。谢谢。对象用户是否始终具有lastSeen属性?它拼写正确吗?似乎lastSeen属性未定义。@JamesThorpe它可以为Null。@ge0rges,它可以为Null,在崩溃的情况下它肯定为Null。通过添加空案例的防御代码来修复它
if(user.lastSeen){var mutable…}else{//user.lastSeen为null}
error calling 'updateLastSeen' function: Error Domain=Parse Code=141 "TypeError: Cannot call method 'slice' of undefined
    at e.query.first.success (main.js:11:58)
    at e.<anonymous> (Parse.js:14:28998)
    at e.i (Parse.js:14:27703)
    at e.a.value (Parse.js:14:27063)
    at e.i (Parse.js:14:27830)
    at e.a.value (Parse.js:14:27063)
    at e.i (Parse.js:14:27830)
    at e.a.value (Parse.js:14:27063)
    at e.<anonymous> (Parse.js:14:27774)
    at e.i (Parse.js:14:27703)" UserInfo={code=141, temporary=0, error=TypeError: Cannot call method 'slice' of undefined
    at e.query.first.success (main.js:11:58)
    at e.<anonymous> (Parse.js:14:28998)
    at e.i (Parse.js:14:27703)
    at e.a.value (Parse.js:14:27063)
    at e.i (Parse.js:14:27830)
    at e.a.value (Parse.js:14:27063)
    at e.i (Parse.js:14:27830)
    at e.a.value (Parse.js:14:27063)
    at e.<anonymous> (Parse.js:14:27774)
    at e.i (Parse.js:14:27703), NSLocalizedDescription=TypeError: Cannot call method 'slice' of undefined
    at e.query.first.success (main.js:11:58)
    at e.<anonymous> (Parse.js:14:28998)
    at e.i (Parse.js:14:27703)
    at e.a.value (Parse.js:14:27063)
    at e.i (Parse.js:14:27830)
    at e.a.value (Parse.js:14:27063)
    at e.i (Parse.js:14:27830)
    at e.a.value (Parse.js:14:27063)
    at e.<anonymous> (Parse.js:14:27774)
    at e.i (Parse.js:14:27703)}
var query = new Parse.Query(Parse.User);
    query.equalTo('email', request.params.email);
    query.first({
        success: function(user) {
            var mutableLastSeenDictionariesArray = user.lastSeen.slice(0);

            for (var i = 0; i < mutableLastSeenDictionariesArray.length; i++) {
                var lastSeen = mutableLastSeenDictionariesArray[i];

                if (lastSeen[response.params.email]) {
                    i = mutableLastSeenDictionariesArray.length+1;
                    mutableLastSeenDictionariesArray.splice(i, 1, request.params["builtDictionary"]);

                    user.lastSeens = mutableLastSeenDictionariesArray;
                    user.save;
                }
            }
        },

        error: function(error) {
            response.error(error.code, "Error: " + error.message);
        }
    });