2011-11-02 104 views
25

Trong JS nếu bạn muốn chia mục nhập của người dùng thành một mảng thì cách tốt nhất để thực hiện nó là gì?Tách chuỗi thành mảng

Ví dụ:

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 

Có lẽ tôi sẽ về vấn đề này một cách sai lầm - sẽ đánh giá cao sự giúp đỡ nào!

Trả lời

45

Sử dụng phương thức .split(). Khi chỉ định một chuỗi trống làm dấu tách, phương thức split() sẽ trả về một mảng với một phần tử trên mỗi ký tự.

entry = prompt("Enter your name") 
entryArray = entry.split(""); 
+1

Không sử dụng '.split ('')'. Vui lòng xem http://stackoverflow.com/a/38901550/112731 –

6

sử dụng var array = entry.split("");

1

Sử dụng split phương pháp:

entry = prompt("Enter your name"); 
entryArray = entry.split(""); 

Tham khảo String.prototype.split() để biết thêm.

2

Bạn có thể thử này:

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

+2

Xem [http://jsperf.com/string-to-array-of-characters] (http://jsperf.com/string-to-array -of-ký tự). – XP1

7

ES6:

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

... và cũng có thể cho những người thích văn học trong CS.

array = Array.from(entry); 
1

Bạn có quan tâm đến tên không phải tiếng Anh không? Nếu vậy, tất cả các giải pháp được trình bày (.split (''), [... str], Array.from (str), vv) có thể cho kết quả xấu, tùy thuộc vào ngôn ngữ:

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

xem xét sử dụng thư viện phân tách grapheme để phân tách dựa trên tiêu chuẩn sạch: https://github.com/orling/grapheme-splitter

Các vấn đề liên quan