2017-03-03 74 views
0

下面是我的数组:计数长度分隔字符串

var array = ["abc.mp3,Lmn.mp3","pqr.mp3","ppp.mp3,ggg.mp3"]; 

现在我想指望这个记录的长度,但我想对待逗号分隔记录的不是一个单一的记录

对于例如:abc.mp3,Lmn.mp3希望通过用逗号分割来将其视为2个分离的记录。

阵列的预期长度应为:5

是否有这将简化计数该长度而不是做循环,然后分割由逗号每个记录,然后通过一个计数长度的一个的过程中的任何方法?

+0

什么样的代码你写过解决呢? –

+0

没有内置... –

回答

3

将数组连接为字符串,然后将字符串拆分为数组,然后可以计算阵列length

var array = ["abc.mp3,Lmn.mp3","pqr.mp3","ppp.mp3,ggg.mp3"].join(',').split(','); 
 
console.log(array); 
 
console.log(array.length);

+1

只是一个指针,逗号是默认的连接值。你可以忽略'',''加入 – Rajesh

+0

@Rajesh如果忽略','在连接中,如何将它分割成数组? –

+0

使用逗号作为默认加入连接元素。 – Rajesh

3

您可以在数组上循环并创建一个具有拆分值的新数组。现在,你只需要做newArray.length

var array = ["abc.mp3,Lmn.mp3","pqr.mp3","ppp.mp3,ggg.mp3"]; 
 

 
var ret = array.reduce(function(p,c){ 
 
    return p.concat(c.split(',')); 
 
}, []) 
 

 
console.log(ret.length)

或者,你可以创建一个字符串并计算逗号的数量,只是把它加1

var array = ["abc.mp3,Lmn.mp3","pqr.mp3","ppp.mp3,ggg.mp3"]; 
 

 
console.log(array.join().match(/,/g).length + 1)

+0

我只是发布相同的'reduce'代码;)很好的解决方案! –

+0

Upvoted为您的努力帮助我的努力。非常感谢你:) –

+0

你的解决方案以不同的方式,而且代码也很清楚,所以我也会把它解决。 –