2017-08-08 1 views
-4

にプッシュするには、私はこのような配列を持っていますか?最初の名前の任意の数が最初の列にある必要があり、姓だけが2番目の列に移動する必要がある場合。Spliting名と配列

Im Learning JavaScript。私はいくつかのループとsplit()を試しましたが、失敗しました。

+0

宿題の問題:このような? – alephtwo

+0

試したコードを投稿できますか? – abagshaw

+0

[Splitファーストネームとファーストネームのjavascriptを使用する](https://stackoverflow.com/questions/12340789/split-first-name-and-last-name-using-javascript) –

答えて

0

サンプルコードを追加すると便利ですが、大まかに言えば、次のようにしたいと考えています。

アレイ全体を反復する。配列内の各要素について、空白(.split())で分割し、分割要素の最初の要素をファーストネーム配列にプッシュし、最後の要素(インデックス-1でアクセス可能)を最後の要素名前配列。

私は実際のコードを学生に練習として残します。

0

重複したくない場合は、Setを使用して名前を保存することをおすすめします。

var abc = [ "Ken Robert Smith", "Daniel Johnson", "Ken Johnson" ]; 

const result = abc.reduce((result, name) => { 
    const names = name.split(/\s+/g); 

    const surname = names.pop(); 

    result.surnames.add(surname); 
    names.forEach(name => result.firstNames.add(name)); 

    return result; 
}, {firstNames: new Set, surnames: new Set}); 

console.log(result.firstNames); // Set(3) {"Ken", "Robert", "Daniel"} 
console.log(result.surnames); // Set(2) {"Smith", "Johnson"} 
0

したがって、最後の単語のみが姓で、残りは「名」です。

名前をスペースで配列に分割し、最後の要素(姓)をポップオフし、残りの要素を結合してファーストネームにします。

var abc = [ 
 
    "Ken Robert Smith", 
 
    "Daniel Johnson" 
 
]; 
 

 
var out = abc.map(function (el) { 
 
    var b = el.split(" "); 
 
    var ln = b.pop(); 
 
    return [b.join(" "), ln]; 
 
}); 
 

 
console.log(out);