["Susy", "John", "Mary"]
などの配列をJavascriptで"Susy, John, and Mary"
にするにはどうすればよいですか? Rubyのto_sentenceメソッドを私の頭から出すことはできません。Javascript配列を文章
答えて
と最後の値を付加することができますが、最後の1以外のすべての項目に参加し、そのを追加します。
var s = arr.slice(0, arr.length - 1).join(', ') + ", and " + arr.slice(-1);
ちょうど1つのメモ - アメリカ人は "と"の前にコンマを入れます。 OPはこれを行った。 – Popnoodles
@popnoodles:ああ、ちょうど '+"と "+"を使います。 – Guffa
私はこの方法を使いました。 – Corey
var arr = ["Susy", "John", "Mary"];
var str = arr.join(", ");
これは、 "Susy、ジョン、メアリー" 'を生成します。これは望ましい結果ではありません。 – pjmorse
最後に変更してから登録する
var source = ["Susy", "John", "Mary"];
source.push('and ' +source.pop());
console.log(source.join(', '))// Susy, John, and Mary
okこれはセクシーです:)しかし文法的にコンマを前に付け加えるのは正しいですか? – mika
["Susy"] => "and Susy"の1要素と2要素では機能しません。 ["Susy"、 "John"] => "Susy、John" –
はそれを試してみてください。
var array = ['susy', 'john', 'mary'];
var last = array.pop();
var string = array.join(', ') + " and " + last;
私はトンがしようdidnのが、あなたのアイデア
、別の解決策を取得する必要があります
(function(a) {
var b = (a||(a=[])).pop();
return (b ? a.length ? [a.join(", "),b] : [b] : a).join(" and ");
})(["Susy", "John", "Mary"]);
またはちょうどであなたのルビーのような文のメソッドを定義します配列のプロトタイプ:
Array.prototype.sentence = function(comma,and) {
var b = this.pop();
return (b ? this.length ? [this.join(comma||", "),b] : [b] : this).join(and||" and ");
};
["Susy", "John", "Mary"].sentence();
//"Susy, John and Mary"
["Susy", "John", "Mary"].sentence(" and ", " as well as ");
//"Susy and John as well as Mary"
["Susy", "John", "Mary", "Helmut"].sentence();
//"Susy, John, Mary and Helmut"
別のオプションは、Array.prototype.reduce
を使用して、次のようになります。
var arr = [1,2,3];
arr.reduce(
function(prev, curr, i){
return prev + curr + ((i===arr.length-2) ? ' and ' : ', ')
}, '')
.slice(0, -2);
は"1, 2 and 3"
を生成します。
は、このいずれかでいくつかの余分な例があります。
- 私たちは「と」(オックスフォードカンマ)の前にカンマ
- いずれかの方法で、我々はカンマであればしたくないを持っていたいです :唯一の1要素がある場合にのみ、2要素
- は、私は、これは、それらの使用例すべてに合うと思う私達はちょうどその単語が
を返したい、があります
function joinSentence(array, oxford_comma){
if(array.length > 1){
var lastWord = " and " + array.pop();
if(oxford_comma && array.length > 1){
lastWord = "," + lastWord;
}
}else{
var lastWord = "";
}
return array.join(", ") + lastWord;
}
ないので、真剣
これは正しい答えです! – mech
toSentence = function(arr){ return arr.join(", ").replace(/,\s([^,]+)$/, ' and $1');};
toSentence(['dogs', 'cats']); // => dogs and cats
toSentence(['dogs', 'cats', 'snakes']); // => dogs, cats and snakes
- 1. Javascriptで文章例
- 2. 文章から単語の長さの配列を取得する-javascript
- 3. 文字列のJavaScript配列
- 4. 文章を文章に分割する
- 5. JavascriptマップCSV文字列をJSON配列
- 6. JavaScript配列の構文
- 7. Nutchの文章としての文章
- 8. 文章
- 9. 文章中の各単語を大文字にする - javascript
- 10. JavaScriptの配列JSON.parse(文字列)
- 11. テキストマイニング:文章行列の取得
- 12. 文章を圧縮
- 13. 文章のタイムスタンプ
- 14. は文章
- 15. 文章クラスタリング
- 16. 文章をJavaで一時配列に保存する方法は?
- 17. どのように文章で文字列の配列を見つけるのですか?
- 18. ハスケル:文章を文章に変換する
- 19. NLTKダイアログで文章を文章にトークン化
- 20. Cで文章が終わる文章を知る方法#
- 21. 文章と文以外の文章を単語列から分類する方法は?
- 22. SyntaxError:missing;文[JavaScriptのArrayにPHP配列]
- 23. 困惑のjavascript配列の構文
- 24. オブジェクトセクションのJavascript配列else文より
- 25. 崇高な文章:列の位置に文字を追加
- 26. C - ファイルからテキスト/文章を文字列に読み込む
- 27. 文字列を使用したRubyでの文章置換#gsub
- 28. 文章/言葉を文字列で区切りたい場合
- 29. Javascriptを - 配列
- 30. javascript regexp特定の文章を見つける
、しかし... '[ "スージー"、 "ジョン"、 "メアリー"]。参加( ' ')。スプリット(/、M /)。参加(' とM' ); ' – jAndy