如何从分隔的字符串创建数组?

时间:2016-01-22 12:21:36

标签: javascript jquery arrays

我在db。中有一个以分号字符串形式存储的类别列表。

我有一个kendo选择标记,我需要填充这些值。

select标签需要将值作为数组形式:

[{catText: "first category", catValue: "first category"},{catText: "second category", catValue: "second category"}...]

注意:text和value都包含相同的字符串。

我的JavaScript / jQuery是:

//define my category dataobject
    function Cat(catValue,catText) {
        this.catValue= catValue;
        this.catText= catText;
    }

    // set value for msCategories
    var vData = [];
    var cats= '@Model.Categories';
    alert(cats); //this returns "Alcohol; Vodka"
    var cData = cats.split(";");
    $.each(cData, function (index, value) {
        var obj = new Cat(value, value);
        vData.push(obj);
    });

alert(vData); //this gives me [{object Object},{object Object}]

如何获得一个数组[{catText: "Alcohol", catValue: "Alcohol"},{catText: "Vodka", catValue: "Vodka"}]

2 个答案:

答案 0 :(得分:3)

当您对一个对象数组运行alert()时,它将返回该项的类型,而不是字符串化的值。

如果您使用console.log( vData ),您很可能会看到您期望的结构中的数据。

你可以尝试的其他事情是

alert( vData[0], vData[1], vData[2] );如果你只需要调试一些东西

甚至

alert( JSON.stringify( vData ) );

因此,您很可能没有问题,只是您尝试查看信息的方式并不合适。

答案 1 :(得分:1)

所以你想要JSON(Javascript Object Notation),你可以用JSON.stringify

来做



  CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern.ToLower().Replace("yyyy", "yy")




然后您可以看到您的数组包含您的预期,var vData = [{catText: "first category", catValue: "first category"},{catText: "second category", catValue: "second category"}] document.write(JSON.stringify(vData));仅尝试在每个项目上调用object.toString(),以便它返回alert

相关问题