gpt4 book ai didi

javascript - 使用 for 循环用逗号分隔值填充选择元素

转载 作者:行者123 更新时间:2023-12-03 10:36:02 26 4
gpt4 key购买 nike

我有一堆以逗号分隔的值作为字符串存储在 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 循环完成的最后一次迭代。根据herehere ,我已经尝试过

for (var i = 0; i < attr_split.length; i++) { 
var options_key += attr_split[i]
}

但这会导致我未定义加上所有没有分隔符的连接字符串,如下例所示:

undefinedAttr1Attr2Attr3

当我简单地使用数组元素的手动输入来测试循环时,一切看起来都很好:

for (var i = 0; i < attr_split.length; i++) { 
var options_key = attr_split[0] || attr_split[1] || attr_split[2]
}

但这不是正确的方法,因为每个字符串的元素数量不同。

知道我在这里做错了什么吗?我感觉这很简单:)

最佳答案

当你声明 'options_key' 时,你并没有初始化它。所以它的值为 undefined 。当你连接 options_key += attr_split[i] 时。在第一次迭代中options_key 包含 undefined。因此只有您才能获得 undefinedAttr1Attr2Attr3

因此声明并初始化 options_key 类似。

var options_key="";

并在你的循环中

for (var i = 0; i < attr_split.length; i++) 
{
options_key = attr_split[i]
}

每次将 options_key 替换为 attr_split[i] 的值时。因此在循环之后它将包含最后一个元素值。更正后的代码为

for (var i = 0; i < attr_split.length; i++) 
{
options_key += attr_split[i]
}

关于javascript - 使用 for 循环用逗号分隔值填充选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28979805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com