Javascript 我的JS中有一个未定义的错误,但不确定原因

Javascript 我的JS中有一个未定义的错误,但不确定原因,javascript,Javascript,在我的console.log()中,在console.log(item.ResponseId)中,我得到了未定义的这反过来又导致$ajax.done()函数失败,因为该值必须是初始调用的返回值。另外,console.log(msg.ResponseId)正在按预期输出一个整数 var rdetail = new Array(); $('.choiceinput').each(function (i, obj) { rdetail.push({

在我的console.log()中,在
console.log(item.ResponseId)中,我得到了
未定义的
这反过来又导致$ajax.done()函数失败,因为该值必须是初始调用的返回值。另外,
console.log(msg.ResponseId)正在按预期输出一个整数

var rdetail = new Array();
        $('.choiceinput').each(function (i, obj) {
            rdetail.push({
                "ResponseId": 0,
                "ResponseDetailVal": $(this).val(),
                "QuestioChoicesId": $(this).attr('id')
            });
        })


        $.ajax({
            type: "POST",
            url: "/Forecaster/userResponse/",
            data: data
        }).done(function (msg) {
            console.log(msg.ResponseId);
            for (var item in rdetail) {
                item.ResponseId = msg.ResponseId;
                console.log(item.ResponseId);
            }
            console.log("Last: ");
            console.log(rdetail);
            $.post('/Forecaster/userResponseDetails/',
                     JSON.stringify(rdetail),
                null, 'application/json');
        })
当您为(rdetail中的项目)写入
时,
rdetail
的键将逐个分配给
item
。由于键是一个字符串,因此为其指定属性不会产生任何作用*

您的意思可能是
rdetail[item].ResponseId

*实际上,它将原语字符串包装在
string()
对象中,将属性分配给它,然后丢弃它当您为(rdetail中的项)
编写
时,
rdetail
的键将逐个分配给
项。由于键是一个字符串,因此为其指定属性不会产生任何作用*

您的意思可能是
rdetail[item].ResponseId


*实际上,它将基本字符串包装在
string()
对象中,为其分配属性,然后丢弃它。

@adeneo:
item
是字符串,
rdetail
是数组。@adeneo:
item
是字符串,
rdetail
是数组。你不应该也
因为..in
在数组上?@RocketHazmat True,但这充其量只是一个评论,而不是回答问题本身的一部分:)好吧,描述在数组上迭代的正确方式会很有帮助。你不也应该在数组上进行
吗?@RocketHazmat True,但这充其量只是一个评论,而不是回答问题本身的一部分:)好吧,描述在数组上迭代的正确方法会很有帮助。