Tôi có một vài vị trí trong mã của mình, nơi tôi cần lặp qua chuỗi và thực hiện char hoạt động theo char. Ứng dụng node.js của tôi cần phải thực hiện hàng chục lần cho mỗi yêu cầu và thường độ dài của các chuỗi có thể khá dài.Lặp lại một chuỗi trong coffeescript mà không cần phải tạo một mảng
Cách duy nhất tôi đã nhìn thấy để chuyển đổi một javascript như dưới đây vào coffeescript là tạo ra một mảng dựa trên độ dài của chuỗi. Vấn đề với điều này, tôi có thêm một điều để làm ở phần cứng, chiếm thêm bộ nhớ, và dường như không cần thiết (ứng dụng nút của tôi xử lý dgrams - lên tới hàng nghìn giây - vì vậy tất cả công việc phụ này đều tăng thêm).
Cách JavaScript:
for(var i = 0; i < str.length; i++) { /* Do stuff with str here */ }
Các gợi ý CoffeeScript cách
for i in [0..str.length]
# Do stuff here
Một lần nữa, tôi nghĩ rằng đó là ngớ ngẩn để buộc việc tạo ra một đối tượng mảng khi truyền thống vòng lặp for doesn không phải gây rối với bước đó từ góc độ phần cứng.
công việc duy nhất của tôi xung quanh tôi đã tìm thấy là sử dụng vòng lặp while như:
i = 0
while i < str.length
# Do stuff
i++
Trong khi làm việc, đó là nhiều tiết hơn ngay cả những cách Javascript thẳng vì chỉ sử dụng một đơn giản cho vòng lặp.
Có cách nào để sử dụng vòng lặp for trong CoffeeScript mà không phải tạo mảng không cần thiết để thực hiện lặp lại cơ bản không?
Tại sao lặp qua một chuỗi? Có gì sai với cách đầu tiên? – Christoph
@Christoph tại sao * không * lặp qua chuỗi? Có lẽ anh ta đang phân tích nó. – Pointy
Làm thế nào để bạn có nghĩa là _ "mà không cần phải tạo ra các mảng thừa" _? Bạn chỉ có thể sử dụng một chuỗi như thể nó là một mảng: 'console.log (" Hello world "[7]);' – Cerbrus