在.split()之后创建一个关联数组

时间:2017-07-10 12:10:54

标签: javascript jquery html split

我以developer.mozilla.org官方文档为例,您可以更轻松地回答:

var names = "Harry Trump; Fred Barney; Helen Rigby; Bill Abel; Chris Hand";
var re = / \ s *; \ s * /;
var nameList = names.split (re);

此正则表达式生成由各种元素除以字符;形成的数组。

我的问题是:我想与提取它的元素之外的数组相关联,即;。 基本上我们的目标是得到这样的东西:

[
  {
  ";": ["Harry Trump"]
  },
   { 
  ";": ["Fred Barney"]
   }
  ...
] 

而不是

[ "Harry Trump", "Fred Barney" , ... ]

你想把它们绑起来吗?

3 个答案:

答案 0 :(得分:2)

您可以使用解决方案https://jsfiddle.net/fq3238ku/1/



var names = "Harry Trump, Fred Barney, Helen Rigby, Bill Abel, Chris Hand";

var splitName = names.split(',');

var data = [];
for(var i in splitName){
	data[i] = {";" : [splitName[i]]};
}

console.log(data);




答案 1 :(得分:2)

如果你的分隔符是可变的,你可以这样做



let names = "Harry Trump, Fred Barney, Helen Rigby, Bill Abel, Chris Hand"
let re = /\s*(,)\s*/
let res = names.split(re).map(
  (currentValue, index, array) => {
    if (index%2!=0) {
      return {
        [currentValue]: (array[index-1] )
      }          
    }
  }
)
.filter((n)=>n)
console.log(res)




答案 2 :(得分:0)

您想要实现的目标根本无法实现。在密钥;下有值后,分配另一个值只会覆盖前一个值。