Javascript 如何使用RegExp循环字符串并将其分段到数组中?

Javascript 如何使用RegExp循环字符串并将其分段到数组中?,javascript,regex,iteration,zapier,Javascript,Regex,Iteration,Zapier,我在Zapier中大量使用自定义JS代码。将数组导入此步骤时,Zapier将其转换为文字字符串,即: ['BigBoatBob,XL-1','LittleBoatMike,M-2','SunkBoatCheney,XS-9'] 变成: “BigBoatBob,XL-1,LittleBoatMike,M-2,SunkBoatCheney,XS-9” 我创建了一个函数来解析数组项(考虑文本逗号),但它看起来非常非常松散。有人有什么建议可以改进/缩短/让自己看起来更专业吗?感谢您帮助我提升我的能力:)

我在Zapier中大量使用自定义JS代码。将数组导入此步骤时,Zapier将其转换为文字字符串,即:

['BigBoatBob,XL-1','LittleBoatMike,M-2','SunkBoatCheney,XS-9']

变成:

“BigBoatBob,XL-1,LittleBoatMike,M-2,SunkBoatCheney,XS-9”

我创建了一个函数来解析数组项(考虑文本逗号),但它看起来非常非常松散。有人有什么建议可以改进/缩短/让自己看起来更专业吗?感谢您帮助我提升我的能力:)

var数组=splitArray('BigBoatBob,XL-1,LittleBoatMike,M-2,SunkBoatCheney,XS-9');
函数拆分数组(x){
const pos=[];
const POS=[];
常数res=[];
对于(变量i=0;i{
if(x.startsWith(',')){
返回x.slice(1);
}否则{
返回x;
}
});
}
console.log(数组);

如果可以依赖字符串中逗号后的空格,并且依赖字符串之间的空格,则可以使用
拆分
和正则表达式
/,(?!)/
,该正则表达式表示“逗号后跟空格:”

const str='BigBoatBob,XL-1,LittleBoatMike,M-2,SunkBoatCheney,XS-9';
常量数组=str.split(/,(?!)/);

console.log(数组)
如果可以依赖字符串中逗号后的空格,并且依赖字符串之间的空格not,则可以使用
拆分
和正则表达式
/,(?!)/
,该表达式表示“逗号not后跟空格:”

const str='BigBoatBob,XL-1,LittleBoatMike,M-2,SunkBoatCheney,XS-9';
常量数组=str.split(/,(?!)/);
console.log(数组)我会使用Array.reduce:
var s='BigBoatBob,XL-1,LittleBoatMike,M-2,SunkBoatCheney,XS-9'
var结果=s.分割(',')。减少((acc,curr,i)=>{
如果(i%2==0){acc[i]=curr}
else{acc[i-1]+=curr}
返回acc
},[])。过滤器(x=>x)
console.log(result)
我会使用Array.reduce:
var s='BigBoatBob,XL-1,LittleBoatMike,M-2,SunkBoatCheney,XS-9'
var结果=s.分割(',')。减少((acc,curr,i)=>{
如果(i%2==0){acc[i]=curr}
else{acc[i-1]+=curr}
返回acc
},[])。过滤器(x=>x)
console.log(结果)
速记

function splitIt(str) {
return str.split(',').reduce((a,v,i)=>((i % 2 == 0)?a.push(v):a[a.length-1]=a[a.length-1]+","+v,a),[]);
}

// Example

let str = `BigBoatBob, XL-1,LittleBoatMike, M-2,SunkBoatCheney, XS-9`;

console.log(splitIt(str));
速记

function splitIt(str) {
return str.split(',').reduce((a,v,i)=>((i % 2 == 0)?a.push(v):a[a.length-1]=a[a.length-1]+","+v,a),[]);
}

// Example

let str = `BigBoatBob, XL-1,LittleBoatMike, M-2,SunkBoatCheney, XS-9`;

console.log(splitIt(str));

“Zapier将其转换为文字字符串”我怀疑其他人正在这样做,因为您展示的是将JavaScript字符串数组转换为单个字符串的默认结果。“Zapier将其转换为文字字符串”我怀疑其他人正在这样做,因为您展示的是将JavaScript字符串数组转换为单个字符串的默认结果。我是个白痴。你是我的英雄!这样更好(也更短)。谢谢大家!@SlavenMan'sGym-我不能在你称自己为白痴的评论上投赞成票。:-)很高兴这有帮助!我是个白痴。你是我的英雄!这样更好(也更短)。谢谢大家!@SlavenMan'sGym-我不能在你称自己为白痴的评论上投赞成票。:-)很高兴这有帮助!