【发布时间】:2015-03-11 06:14:22
【问题描述】:
我有一堆以逗号分隔的值作为字符串存储在 JSON 文件中。我的目标是拆分这些值以填充基于 Selectize.js 的选择元素。代码(摘录)如下:
var options = {};
var attr_split = data.attributes['Attribute1'].split(",");
var options_key;
for (var i = 0; i < attr_split.length; i++) {
options_key = attr_split[i]
}
var options_values = {
value: options_key,
text: options_key,
}
if (options_key in options)
options_values = options[options_key];
options[options_key] = options_values;
$('#input').selectize({
options: options,
});
虽然这似乎可行,但 select 元素中的输出只显示了 for 循环完成的最后一次迭代。根据here 和here,我试过了
for (var i = 0; i < attr_split.length; i++) {
var options_key += attr_split[i]
}
但这会抛出 undefined 以及所有没有分隔符的连接字符串,如下例所示:
undefinedAttr1Attr2Attr3
当我使用手动输入数组元素来简单地测试循环时,一切看起来都很好:
for (var i = 0; i < attr_split.length; i++) {
var options_key = attr_split[0] || attr_split[1] || attr_split[2]
}
但这不是要走的路,因为每个字符串的元素数量不同。
知道我在这里做错了什么吗?我觉得这很简单:)
【问题讨论】:
-
你能发帖
data.attributes['Attribute1'] -
当然可以。这是它在 JSON 中的存储方式:
"Attribute1":"Attr1,Attr2"
标签: javascript arrays for-loop