JavaScript从逗号分隔到包含值的数组列表

时间:2017-05-22 18:10:22

标签: javascript jquery

我尝试做的是用逗号分隔的文字(就像这个):

  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数组。 我知道如何拆分以逗号分隔的列表,但我不知道如何在其中添加值。

实际代码:

HTML

hello,test,ciao

JAVASCRIPT:

  <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上回复了,我遇到的问题是添加了默认值:),非常感谢您提前。

5 个答案:

答案 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从中构建对象。

&#13;
&#13;
var original = "hello,test,ciao";

var obj = original.split(',').reduce(function(p,c) {
    p[c] = "predeterminated value";
    return p;
}, {});

console.log(obj);
&#13;
&#13;
&#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)

并不想改变你的代码。只是看看对象的创建。

&#13;
&#13;
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;
&#13;
&#13;

相关问题