繁体   English   中英

如何将逗号分隔的字符串数组分隔成各种数组?

[英]How to separate array of comma separated string into various arrays?

转换此逗号分隔值数组的最佳方法是什么

[ 'com--test,LFutx9mQbTTyRo4A9Re5ksjdnfsI4cKN4q2,on',
  'com--fxtrimester,SEzlksdfMpW3FxkSbzL7eo5MmqkPczCl2,on',
  'com--fxtrimester,LFutx9mQbTTyRoldksfns4A9Re5I4cKN4q2,on' ]

分为三个阵列?

[ 'com--test',           [ LFutx9mQbTTyRo4A9Re5Ilsdf4cKN4q2', ['on',
  'com--fxtrimester',      SEzMpW3FxkSbzL7eo5MmlkdfqkPczCl2',  'on',
  'com--fxtrimester' ]     LFutksdfx9mQbTTyRo4A9Re5I4cKN4q2 ]  'on']

我正在尝试类似的东西:

 var indexToSplit = unique.indexOf(',');
 var status = unique.slice(3, indexToSplit - 1);
 var use = unique.slice(2, indexToSplit - 2);
 var pros = unique.slice(0, indexToSplit - 3);
 console.log(pros);

但我认为这是错误的...任何帮助,我们将不胜感激!

您将不得不遍历数组,并使用string.split来获得单独的部分。

一旦有了独立的零件,就可以将它们推入必要的阵列中。

 var d = [ 'com--test,LFutx9mQbTTyRo4A9Re5ksjdnfsI4cKN4q2,on', 'com--fxtrimester,SEzlksdfMpW3FxkSbzL7eo5MmqkPczCl2,on', 'com--fxtrimester,LFutx9mQbTTyRoldksfns4A9Re5I4cKN4q2,on']; var result = [[],[],[]]; var len = 3; d.forEach(function(str, i){ var _tmp = str.split(','); for (var i = 0; i<len; i++){ result[i].push(_tmp[i]) } }) console.log(result) 


通用方法。

  • 循环数据并使用逗号( , )分割每个字符串
  • 循环遍历拆分值,并检查是否存在必要的数组。
  • 如果不是,请初始化数组,但不能执行p[i] = []因为这将推到第一个值。 您还必须初始化所有先前的值。 为此,您可以使用new Array(length) 默认情况下,如果length大于0 ,则所有索引将初始化为undefined
  • 现在推送到必要的数组。 位置将保持不变。

 var d = ['com--test,LFutx9mQbTTyRo4A9Re5ksjdnfsI4cKN4q2,on', 'com--fxtrimester,SEzlksdfMpW3FxkSbzL7eo5MmqkPczCl2,on', 'com--fxtrimester,LFutx9mQbTTyRoldksfns4A9Re5I4cKN4q2,on,test' ]; var result = d.reduce(function(p, c, index) { var _tmp = c.split(','); for (var i = 0; i < _tmp.length; i++) { // Check if position not defined. if (p[i] === undefined) // Initialize array and add default (undefined) to all elements before current element p[i] = new Array(index); p[i].push(_tmp[i]) } return p; }, []) console.log(result) 

由于您的问题并不要求更一般的情况,因此我可以安全地假设它适用于3个数组。 我们可以在数组下面使用forEach函数,代码可以是可能的解决方案之一

 var arr1 = []; var arr2 = []; var arr3 = []; var x = ['com--test,LFutx9mQbTTyRo4A9Re5ksjdnfsI4cKN4q2,on', 'com--fxtrimester,SEzlksdfMpW3FxkSbzL7eo5MmqkPczCl2,on', 'com--fxtrimester,LFutx9mQbTTyRoldksfns4A9Re5I4cKN4q2,on'] x.forEach(function(data) { var dataArray = data.split(','); arr1.push(dataArray[0]); arr2.push(dataArray[1]); arr3.push(dataArray[2]); }); console.log(arr1) console.log(arr2) console.log(arr3) 

使用map变为:

  • 对于0、1和2中的位置X:
  • 将列表中的每个项目转换为数组,然后选择第X个项目

 var start = [ 'com--test,LFutx9mQbTTyRo4A9Re5ksjdnfsI4cKN4q2,on', 'com--fxtrimester,SEzlksdfMpW3FxkSbzL7eo5MmqkPczCl2,on', 'com--fxtrimester,LFutx9mQbTTyRoldksfns4A9Re5I4cKN4q2,on' ] var out = [0,1,2].map(i => start.map(x => x.split(',')[i]) ) console.log(out) 

暂无
暂无

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

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