繁体   English   中英

JavaScript从逗号分隔到带有值的数组列表

[英]JavaScript Split from comma separated to array list with values

我想做的是用逗号分隔的文本(例如这样):

hello,test,ciao

获取具有预定值的javascript数组。 我知道如何分割以逗号分隔的列表,但是我不知道如何在其中添加值。

实际代码:

HTML

  <input onkeyup="test()" type="text" id="origin">
  <div id="response">

  </div>

JAVASCRIPT:

function getValue(){
  var returnV = $("#origin").val();
  return returnV
}
function test(){
    var origin = getValue();
    var array = origin.split(',');
    console.log(array)
}

OUTPUT

["hello", "test", "ciao"]

我想得到什么

{
  "hello":"predetermined value",
  "test":"predetermined value",
  "ciao":"predetermined value",
}

我认为这个问题很有趣,因为例如,您可以使用入门值创建新配置,并在以后为每个配置添加自定义配置。 我知道分裂部分已经在stackoverflow上回复了,我遇到的麻烦是添加默认值:),在此先非常感谢。

您是否尝试过遍历数组? 像这样:

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)
}

有几点注意事项:尝试给变量赋予更有意义的名称; 这个词是“预定的”,

将输出存储到变量:

var output=["hello", "test", "ciao"]

然后用它做这样的事情:

var newObject={};

for(var i in output){
 var property=output[i];
 newObject[property]='predeterminated value';
}

示例JSFiddle (打开控制台查看结果)

拆分您的字符串,然后使用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); 

尚不清楚确切的predeterminated value应该从何而来。 如果对象的所有属性都相同,则将按原样工作。 如果不是,则必须弄清楚如何选择正确的值。

嘿,您可以按照以下代码片段进行操作,这将有所帮助

 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(); 

不想这么多更改代码。 只是看看对象创建。

 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); } 
 <input onkeyup="test()" type="text" id="origin"> <div id="response"> </div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM