[英]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
变为:
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.