2014-09-14 14 views
7

Có cách nào tốt hơn để thêm x lượng khoảng trắng vào một chuỗi không?javascript - thêm khoảng trắng vào bên trái của chuỗi

str = "blah"; 
x = 4; 

for (var i = 0; i < x; i++){ 
    str = ' ' + str; 
} 

return str; 
+0

Xác định Ngẫu nhiên: http://stackoverflow.com/questions/14343844/create-a-string-of-variable-length-filled-with-a-repeated-character –

+0

Nếu vấn đề hiệu suất, bạn đang thực hiện rất nhiều chuỗi không cần thiết nối khi x trở nên cao. Hãy tưởng tượng bạn muốn 512 không gian. Ghép nối hai chuỗi 256 không gian sẽ nhanh hơn việc thêm một khoảng trống 512 lần. Trên điện thoại của tôi nhưng điều này thường được gọi là đệm trái và phải của chuỗi. – Warty

+0

không có điểm nào có vòng lặp nếu bạn luôn thêm cùng một lượng đệm – charlietfl

Trả lời

21

Làm như thế, ngăn vòng lặp.

str = str + new Array(x + 1).join(' ')

+3

độ dài của 'x - 1' vì tham gia lấy phần tử ở bên phải và phần tử cuối cùng không có phần tử. Vì vậy, nó phải là 'mảng mới (x + 1) .join ('')' – axelduch

+0

Rất đẹp! thanks –

+4

Ngoài ra, nó phải là 'str = new Array (x + 1) .join ('') + str;'. Miếng đệm phiên bản của bạn ở phía bên trái. –

0

ví dụ bạn có thể sử dụng lặp lại cho không gian màu trắng sang trái hoặc bên phải của chuỗi của bạn: 'tốt hơn'

var j = 6; 
for (i = 0; i < n; i++) { 
    console.log(" ".repeat(j-1)+"#".repeat(i+1)) 
    j--; 
} 
Các vấn đề liên quan