如何从分隔字符串创建数组
How do you create an array from a delimited string?
我有一个类别列表,在db中存储为分号字符串。
我有一个剑道选择标签,我需要用这些值填充它。
select 标记需要以下形式的数组形式的值:
[{catText: "first category", catValue: "first category"},{catText: "second category", catValue: "second category"}...]
注意:文本和值都包含相同的字符串。
我的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"}]
的数组
当你对一个对象数组运行 alert() 时,它将返回项的类型,而不是字符串化的值。
如果您使用console.log( vData )
您很可能会在预期的结构中看到数据。
您可以尝试的其他事情是
alert( vData[0], vData[1], vData[2] );
,如果你只需要调试一些东西
甚至
alert( JSON.stringify( vData ) );
很可能没有问题,只是您尝试查看信息的方式并不真正合适。
所以你想要JSON(Javascript对象表示法),你可以用JSON.stringify
var vData = [{catText: "first category", catValue: "first category"},{catText: "second category", catValue: "second category"}]
document.write(JSON.stringify(vData));
然后你可以看到你的数组包含你期望的内容,alert
只尝试对每个项目调用object.toString()
,以便它返回[object Object]
相关文章:
- knex:根据结果创建数组的合适方法是什么
- 在javascript中创建数组,而不是if.else
- 使用来自不同循环Javascript的数据创建数组
- 尝试从计算创建数组时数组长度无效
- 循环选择标记并创建数组或字符串
- 根据 Array Javascript 中的字符串值动态创建数组名称
- 通过动态创建数组名称在单击函数中引用 javascript 数组
- 如何在不完成添加序列的情况下从rxjs创建数组
- 如何在不创建数组的情况下使用NgFor来生成矩阵UI模式
- 使用jquery从TextArea创建数组
- jquery动态创建数组
- 从现有数组创建数组
- 使用对象的副本创建数组(Javascript)
- 基于分隔符/方括号的实例创建数组
- 如何创建数组取决于是否在jQuery中设置了变量
- 使用JavaScript's Reduce从对象数组创建数组
- 在 JavaScript 中动态创建数组
- 在 javascript 中使 split() 方法使用双引号而不是单引号创建数组
- 在 $.each 函数中使用条件来创建数组
- 如何修改此代码,以便创建数组并将事件添加到数组中