2017-03-03 68 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

你的解決方案以不同的方式,而且代碼也很清楚,所以我也會把它解決。 –