web-dev-qa-db-ja.com

文字列を配列に分割

JSでは、ユーザーエントリを配列に分割したい場合、それを行う最善の方法は何ですか?

例えば:

entry = Prompt("Enter your name")

for (i=0; i<entry.length; i++)
{
entryArray[i] = entry.charAt([i]);
}

// entryArray=['j', 'e', 'a', 'n', 's', 'y'] after loop

おそらく私はこれについて間違った方法で行っています-助けていただければ幸いです!

32
methuselah

.split() メソッドを使用します。空の文字列をセパレータとして指定すると、split()メソッドは文字ごとに1つの要素を持つ配列を返します。

entry = Prompt("Enter your name")
entryArray = entry.split("");
62
James Hill

ES6:

const array = [...entry]; // entry="i am" => array=["i"," ","a","m"]
8
Abdennour TOUMI

var array = entry.split("");を使用します

7
Jordan Wallwork

英語以外の名前を気にしますか?その場合、提示されたソリューション(.split( '')、[... str]、Array.from(str)など)のすべてが、言語に応じて悪い結果をもたらす可能性があります。

"प्रणव मुखर्जी".split("") // the current president of India, Pranab Mukherjee
// returns ["प", "्", "र", "ण", "व", " ", "म", "ु", "ख", "र", "्", "ज", "ी"]
// but should return ["प्", "र", "ण", "व", " ", "मु", "ख", "र्", "जी"]

クリーンな標準ベースの分割には、grapheme-splitterライブラリの使用を検討してください。 https://github.com/orling/grapheme-splitter

5
Orlin Georgiev

これを試すことができます:

var entryArray = Array.prototype.slice.call(entry)

3
Mic

...また、CSの文学が好きな人のために。

array = Array.from(entry);
3
Redu

ES6は、オブジェクト(文字列、配列、マップ、セット)を反復処理するのに非常に強力です。これを解決するためにスプレッド演算子を使用しましょう。

entry = Prompt("Enter your name");
var count = [...entry];
console.log(count);
2
JideLambo
var foo = 'somestring'; 

// bad example https://stackoverflow.com/questions/6484670/how-do-i-split-a-string-into-an-array-of-characters/38901550#38901550

var arr = foo.split(''); 
console.log(arr); // ["s", "o", "m", "e", "s", "t", "r", "i", "n", "g"]

// good example
var arr = Array.from(foo);
console.log(arr); // ["s", "o", "m", "e", "s", "t", "r", "i", "n", "g"]

// best
var arr = [...foo]
console.log(arr); // ["s", "o", "m", "e", "s", "t", "r", "i", "n", "g"]
2
аlex dykyі

splitメソッドを使用します。

_entry = Prompt("Enter your name");
entryArray = entry.split("");
_

詳細については String.prototype.split() を参照してください。

2
Lukman