2017-10-17 29 views
0

我有一個數組,我在數組中存儲逗號分隔的字符串。現在我想把字符串中的每個第一個字母從逗號分隔的字符串中取出。
對於ex =>Abc, Xyz, Hji所以現在我想要A, X, H如何從逗號分隔的字符串中取第一個字母?

下面列出了我的代碼和數組。

這是我的代碼=>

var ArryString = []; 
for (var i = 0; i < data.length; i++) {    
    ArryString.push(data[i].Str); 
} 

當前O/P =>

 "Abc" 
    "Xyz,Hji,Lol", 
    "Uyi,Mno" 

我expacted O/P =>

"A" 
    "X,H,L" 
    "U,M" 
+2

你有沒有嘗試過任何東西 - 比如你研究如何通過逗號分割?或者,如何獲取字符串的第一個字母?那些是你應該獨立解決的兩個較小的子問題,然後把它們放在一起。 –

回答

1

這不是好看和業餘,但可以理解的。

var ArryString = []; 
 
var data = ["Abc", "Xyz,Hji,Lol", "Uyi,Mno"]; 
 
var index=0; 
 
for (var k in data){ 
 
var a=data[k].split(","); 
 
ArryString[index]=a[0].charAt(0); 
 
if(a.length > 1) 
 
    for (var l=1 ;l<a.length ; l++) 
 
     ArryString[index]+=","+a[l].charAt(0); 
 
index++; 
 
} 
 

 
console.log(ArryString);

+0

這是amzing ..... – Edit

+0

謝謝...... –

5

你可以分割字符串和只帶第一個字符destructuring assignment並加入字符串的第一個字符。然後將新字符串映射到新數組。

var data = ["Abc", "Xyz,Hji,Lol", "Uyi,Mno"]; 
 
    result = data.map(s => s 
 
     .split(',') 
 
     .map(([c]) => c) 
 
     .join()); 
 
    
 
console.log(result);

+0

偉大的答案尼娜。我如何閱讀成語'map(([s])=> s)'? –

+0

@另一個人,這是一個解構賦值,其中回調的第一項被視爲可迭代的,然後它將第一個元素作爲迭代。 –

+0

以及如果我想採用第n個元素呢?我能否仍然能夠使用解構賦值? –

1

可以使用的charAt方法返回一個字符串的第一個字符。

var newString = []; 
for (var i=0; i< newString.length; i++) 
{ 
    newString.push(ArrayString[i].charAt(0); 
} 
1

使用String.charAt()方法爲陣列中的每個串和的第一個字符到一個新的數組。

實例功能: -

function takeFirstChar(arr){ 
    var new_arr = []; 
    arr.forEach(function(el){ 
    var firstLetter = el.charAt(0) 
    new_arr.push(firstLetter); 
    }); 
    return new_arr; 
} 

takeFirstChar(['hello','cruel','world']); 
//Output-> ['h','c','w'] 
1

這裏是一個工作示例:

// We've got an array of comma separated worlds 
 
// Sometimes we've got one, sometimes several 
 
data=["Hello","i","have","one,array","and,i","store","comma,separated,string,in","the","array"]; 
 
// We want to ouput the same pattern but keeping the initial letter only 
 
var result = []; 
 
var items = []; 
 
var aChar; 
 
// We loop thru the data array 
 
for (var i = 0; i < data.length; i++) { 
 
\t \t // We make a small array with the content of each cell 
 
     items = data[i].split(","); 
 
\t \t for (var j = 0; j < items.length; j++) { // We loop thru the items array 
 
\t \t \t aChar = items[j].charAt(0); // We take the first letter only 
 
\t \t \t if (aChar!="") // If the item/work was not empty the we keep only the initial letter in our items array 
 
\t \t \t \t items[j] = aChar; 
 
\t \t } 
 
\t \t result.push(items.join(",")); // we store comma separated first letters in our result array 
 
    } 
 

 
console.log(result)

相關問題