Tiền boa? Cách ngắn để tạo tối đa 12 ký tự lặp lại trong JavaScript


8
'---------'
'-'.repeat(9) // longer!

'------------'
(x='----')+x+x
'-'.repeat(12) // same length

Có cách nào thông minh hơn để tạo chuỗi tối đa 12 ký tự lặp lại trong JavaScript không?


1
Đừng nghĩ như vậy nhưng tùy thuộc vào thử thách, bạn có thể chơi gôn nhiều lần để tiết kiệm byte bằng cách sử dụng, ví dụ RLE
ASCII - chỉ

9
Đối với trường hợp đặc biệt của dấu phẩy bạn có thể làm Array(12)+'', ngắn hơn nghĩa đen bắt đầu từ 11 dấu phẩy và sau đó vẫn ngắn hơn repeat.
Martin Ender

1
@SteveBennett đôi khi bạn chỉ quan tâm đến độ dài chuỗi chứ không phải ký tự thực tế và nhiều thách thức PPCG cho phép bạn sử dụng một số ký tự ASCII mà bạn chọn để xuất.
Martin Ender

1
Nếu bạn sẽ tái sử dụng lặp lại, bạn có thể đặt bí danh cho nó.
Xù xì

5
Nếu bạn không thực sự cần 12 ký tự giống hệt nhau mà thay vào đó là một chuỗi 12 ký tự, bạn cũng có thể làm được 1e11+''.
Arnauld

Câu trả lời:


2

Thật không may, sau những gì dường như là vĩnh cửu của tài liệu tìm kiếm, tôi dường như không thể tìm thấy bất kỳ giải pháp nào sẽ hoạt động với ràng buộc 12 ký tự và tạo ra cho bất kỳ ký tự nào được cung cấp. Tuy nhiên, có một vài thủ thuật gọn gàng mà người ta có thể làm để lưu một số byte cho các trường hợp cụ thể:

  • 1eL-1+''sẽ đưa ra một chuỗi, chứa đầy 9s, có độ dài L.
  • ''.padEnd(L)sẽ đưa ra một chuỗi, chứa đầy khoảng trắng, có độ dài L. Nó chỉ hữu ích khi L > 10, nếu không thì quá lâu. Điều này có thể được xâu chuỗi ngay lập tức với một chức năng.
  • N/9+''sẽ đưa ra một chuỗi, bắt đầu với 0.sau đó là một bó Ns. Điều này không hoạt động khi N <1 hoặc N > 8, và kết quả rõ ràng không chứa cùng một ký tự, nhưng khá gần và khá ngắn.
  • Array(L)+''sẽ đưa ra một chuỗi, chứa đầy dấu phẩy, có độ dài L - 1.

1
Dọc theo dòng của 1/3+''mẹo của bạn , bạn có thể lặp lại một chữ số D (trừ 0 và 9) một loạt các lần tương tự với D/9+''.
kamoroso94

Array(L)+''cho L-1chiều dài, phải không?
Dom Hastings

Điều đó có nghĩa là với L = 13, mã là 12 ký tự và đầu ra là 12 ký tự, giống như','.repeat(12)
Steve Bennett
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.