Javascript在MVC视图中使用for循环创建动态数组

Javascript在MVC视图中使用for循环创建动态数组,javascript,Javascript,我有一个来自控制器的状态列表,名为statusList @{ var statusList = @Html.Raw(Json.Encode(Model.Statuses)); } 我想像下面那样解析它。我在javascript中使用的数组如下: var options = { '0': '', '1': 'Pending', '2': 'In Progress', '3': 'Done' }; 当我写这个硬编码的测试,它的工作意图。但当我尝试像这样在

我有一个来自控制器的状态列表,名为statusList

@{
    var statusList = @Html.Raw(Json.Encode(Model.Statuses));
}

我想像下面那样解析它。我在javascript中使用的数组如下:

var options = {
    '0': '',
    '1': 'Pending',
    '2': 'In Progress',
    '3': 'Done'
};
当我写这个硬编码的测试,它的工作意图。但当我尝试像这样在for循环中填充它时:

var options = [];

for (var i = 0; i < statusList.length; i++) {
    var id = statusList[i]["Id"];
    var name = statusList[i]["Status"];

    options.push({id : name});
}
var选项=[];
对于(变量i=0;i

这将写入[object object]以选择输入。我做错了什么?

试试这样的方法。id和name是动态的,因此当您将其推送到数组时,必须将它们放在括号中。现在数组的使用方式如下:
[{id:name},{id:name}]
。您看到
[Object Object]
的另一个原因是,为了查看其中的内容,您必须对结果进行字符串化

var options = [];

        for (var i = 0; i < statusList.length; i++) {
            var id = statusList[i].id;
            var name = statusList[i].status;

            options.push({[id] : [name]});
        }

console.log(JSON.stringify(options))
var选项=[];
对于(变量i=0;i
像这样尝试var statusList=JsonSerializer.Serialize(Model.Statuses);