2017-10-17 15 views
0

私は1つの配列を持っていて、コンマで区切られた文字列を配列に格納します。今度は、最初の文字をコンマで区切って文字列を取り込みます。
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

あなたは何を試してみました - 例えば、あなたは、カンマで分割する方法を研究してきましたか?あるいは、文字列の最初の文字を取得する方法?それらはあなたがお互いに独立して解決しなければならない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

おはようございます..... – 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

@ another-guy、それはコールバックの最初の項目がiterableとして扱われ、次にそれの最初の要素を取る、destructuringの代入です。 –

+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)

関連する問題