我尝试做的是用逗号分隔的文字(就像这个):
var sel_content = '';
$.each(data, function(idx, arr) {
sel_content += '<optgroup label="' + idx + '">';
$.each(arr, function(arr_idx, arr_value) {
sel_content += '<option value="' + arr_idx + '">' + arr_value + '</option>';
});
sel_content += '</optgroup>';
});
$('#sel').append(sel_content);
获取具有预定值的javascript数组。 我知道如何拆分以逗号分隔的列表,但我不知道如何在其中添加值。
实际代码:
hello,test,ciao
<input onkeyup="test()" type="text" id="origin">
<div id="response">
</div>
function getValue(){
var returnV = $("#origin").val();
return returnV
}
function test(){
var origin = getValue();
var array = origin.split(',');
console.log(array)
}
["hello", "test", "ciao"]
我认为这个问题很有意思,因为这种方式可以,例如,创建具有初始值的新配置,并在以后为每个配置添加自定义确认。我知道拆分部分已经在stackoverflow上回复了,我遇到的问题是添加了默认值:),非常感谢您提前。
答案 0 :(得分:0)
您是否尝试过迭代数组?像这样:
function getValue(){
var returnV = $("#origin").val();
return returnV
}
function test(){
var origin = getValue();
var object = {}
var array = origin.split(',');
array.forEach((item) => {
object[item] = "predeterminated value"
}
console.log(object)
}
一些注意事项:尝试为变量提供更有意义的名称;这个词是“预定的”,
答案 1 :(得分:0)
将输出存储到变量:
var output=["hello", "test", "ciao"]
然后用它做这样的事情:
var newObject={};
for(var i in output){
var property=output[i];
newObject[property]='predeterminated value';
}
Example JSFiddle(打开控制台查看结果)
答案 2 :(得分:0)
拆分字符串,然后使用Array.prototype.reduce
从中构建对象。
var original = "hello,test,ciao";
var obj = original.split(',').reduce(function(p,c) {
p[c] = "predeterminated value";
return p;
}, {});
console.log(obj);
&#13;
不清楚predeterminated value
应该来自哪里。如果对象的所有属性都相同,那么这将按原样运行。如果不是,您必须弄清楚如何选择正确的值。
答案 3 :(得分:0)
嘿,你可以按照下面的代码片段来帮助
function getValue(){
var returnV = 'hey,your,input,keys,goes,here';
return returnV;
}
function test(){
var origin = getValue();
var array = origin.split(',');
var finalObj = {};
var defaultVal = 'pre-def';
for(var i=0;i<array.length;i++){
finalObj[array[i]] = defaultVal;
}
console.log("arry",array)
console.log("converted",finalObj)
}
test();
答案 4 :(得分:0)
并不想改变你的代码。只是看看对象的创建。
function getValue(){
return document.getElementById("origin").value
}
function test(){
var obj = {}
var origin = getValue();
origin.split(", ").forEach(function(e) {
obj[e] = "predeterminated value";}
);
console.log(obj);
}
&#13;
<input onkeyup="test()" type="text" id="origin">
<div id="response">
</div>
&#13;