将变量中的值设置为Dictionary

时间:2017-09-24 04:57:41

标签: javascript

我有一组DropDownList的值。我的要求是在设置DropDown之前,需要使用以下格式的循环将值存储在javascript变量中:

var categories = [{
                "value": 1,
                "text": "Keyboard"
            },{
                "value": 2,
                "text": "Mouse"
            },{
                "value": 3,
                "text": "Monitor"
            }];

我创建了如下示例:

dataType: "json",
data: { categoryId: CategoryHdId },
success: function (data) {
                var categories = [];
                for (i = 0; i < data.length; i++) {
                    case = {
                        "value": data[i].ddlSubCategoryId,
                        "text": data[i].SubCategoryName
                    }
                    categories.append(case);
                }
}

但这给了

Syntax Error

Uncaught TypeError: categories.append is not a function

任何人都可以帮助如何在循环中设置它们。

3 个答案:

答案 0 :(得分:4)

case是javascript中的保留字,因此您不能将其用作变量名,请使用其他变量名。还可以使用push()向数组添加值。

dataType: "json",
data: { categoryId: CategoryHdId },
success: function (data) {
                var categories = [];
                for (i = 0; i < data.length; i++) {
                   // case = {  reserved word case will throw syntax error  
                      someVar = {      //declare as var if you don't want it to be global                 
                        "value": data[i].ddlSubCategoryId,
                        "text": data[i].SubCategoryName
                      }
                    categories.push(someVar);
                }
}

答案 1 :(得分:2)

试试这个

var categories = []; 
for (i = 0; i < data.length; i++) { 
    categories.push({ "value": data[i].ddlSubCategoryId, "text": data[i].SubCategoryName })
}

答案 2 :(得分:0)

dataType: "json",
data: { categoryId: CategoryHdId },
success: function (data) {
                var categories = [];
                for (i = 0; i < data.length; i++) {
                    let temp = {
                        "value": data[i].ddlSubCategoryId,
                        "text": data[i].SubCategoryName
                    }
                    categories.push(temp);
                }
}