Cách được quy định để nối thêm một giá trị vào một mảng trong CoffeeScript là gì? Tôi đã kiểm tra cuốn sách PragProg CoffeeScript nhưng nó chỉ thảo luận về việc tạo, cắt và nối, và lặp lại, nhưng không phụ thêm.Trong CoffeeScript, làm thế nào để bạn thêm một giá trị vào một mảng?
Trả lời
Tốt cũ push
vẫn hoạt động.
x = []
x.push 'a'
Tốt hơn hết là sử dụng tính năng đọc danh sách.
Ví dụ chứ không phải này:
things = []
for x in list
things.push x.color
làm điều này thay vì:
things = (x.color for x in list)
Điều đó không nối thêm các giá trị từ danh sách vào mọi thứ. Điều đó thay thế mảng vật hoàn toàn. Tôi cũng đã thử nghiệm nó. – ajsie
Vâng, chắc chắn ajsie, bạn đã chính xác, nó thay thế nó, không nối thêm. Vấn đề là, tuy nhiên, thường là khi bạn đang đẩy, bạn thường làm một cái gì đó ** khá giống như ** một mảng hiểu anyway. Không phải trong mọi trường hợp, phải thừa nhận, nhưng rất nhiều thời gian. – suranyami
Câu trả lời của Thilo là câu trả lời đúng - cuộn xuống! – micapam
Nếu bạn đang chaining cuộc gọi sau đó bạn muốn append để trở mảng chứ không phải là chiều dài của nó. Trong trường hợp này, bạn có thể sử dụng .concat ([newElement])
Phải là [newElement] vì concat đang chờ một mảng giống như kết nối của nó. Không hiệu quả nhưng trông đẹp mắt trong cài đặt phù hợp.
Cuộc gọi chuỗi nhiều hơn là một điều phong cách bạn có thể làm tuy nhiên, như bạn đã nói "phương pháp không hiệu quả" - 'concat' trả về một mảng mới được xây dựng từ các phần tử mảng A + mảng B. Tài liệu tham khảo cho các đối tượng được lưu giữ để thay đổi đối tượng được tham chiếu trong mảng A, mảng B hoặc kết quả concat cũng sẽ được phản ánh trong các mảng khác. – SidOfc
Tuyệt vời. Cảm ơn. –
Tác giả của [quyển sách PragProg] (http://pragprog.com/book/tbcoffee/coffeescript) tại đây. +1 cho câu trả lời của Thilo. Tôi không muốn đề cập đến các phương thức nguyên mẫu 'Array' trong cuốn sách, vì đã có rất nhiều tài liệu JavaScript tốt. Xem, ví dụ: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array#Methods_2 –
Còn nếu chúng ta có một đối tượng chứ không phải là một nhân vật thì sao? –