Tôi biết đây là một câu hỏi cũ, nhưng đối với những perusing web như tôi, đây là một giải pháp:
Sử dụng replace()
trên dấu phẩy và tạo ra một tập hợp các ký tự để xác định khi kết thúc của một hàng . Tôi chỉ cần thêm --
vào cuối các mảng nội bộ. Bằng cách đó bạn không phải chạy hàm for
.
Dưới đây là một JSFiddle: https://jsfiddle.net/0rpb22pt/2/
Trước tiên, bạn phải có được một bảng bên trong HTML của bạn và cung cấp cho nó một id:
<table id="thisTable"><tr><td>Click me</td></tr></table>
Dưới đây là mảng của bạn thay đổi nội dung cho phương pháp này:
thisArray=[["row 1, cell 1__", "row 2, cell 2--"], ["row 2, cell 1__", "row 2, cell 2"]];
Chú ý số --
được thêm vào cuối mỗi mảng.
Vì bạn cũng có dấu phẩy bên trong của mảng, bạn phải phân biệt chúng bằng cách nào đó, do đó bạn không kết thúc việc thêm bảng __
sau khi ô (bên cạnh ô cuối cùng liên tiếp) hoạt động. Nếu bạn không có dấu phẩy trong ô của mình, bước này sẽ không cần thiết.
Bây giờ đây là chức năng của bạn:
function tryit(){
document
.getElementById("thisTable")
.innerHTML="<tr><td>"+String(thisArray)
.replace(/--,/g,"</td></tr><tr><td>")
.replace(/__,/g,"</td><td>");
}
Nó hoạt động như thế này:
- Gọi bảng của bạn và nhận được để thiết lập các
innerHTML
. document.getElementById("thisTable").innerHTML
- Bắt đầu bằng cách thêm thẻ HTML để bắt đầu một hàng và dữ liệu.
"<tr><td>"
- Thêm
thisArray
làm String()
. +String(thisArray)
- Thay thế mỗi
--
kết thúc trước một hàng mới với việc đóng và mở dữ liệu và hàng..replace(/--,/g,"</td></tr><tr><td>")
- Dấu phẩy khác biểu thị dữ liệu riêng lẻ trong các dòng. Vì vậy, thay thế tất cả các dấu phẩy đóng và mở dữ liệu. Trong trường hợp này không phải tất cả dấu phẩy nằm giữa các hàng vì các ô có dấu phẩy, vì vậy chúng tôi phải phân biệt các dấu phẩy với
__
: .replace(/__,/g,"</td><td>")
. Thông thường bạn chỉ cần thực hiện .replace(/,/g,"</td><td>")
.
Miễn là bạn không ngại thêm một số ký tự đi lạc vào mảng của mình, nó chiếm ít mã hơn và rất dễ triển khai.
Tôi ngạc nhiên mà không ai khác đã hỏi câu hỏi này trước đây. Tôi nghĩ rằng nó sẽ là một cái gì đó mà hầu hết các nhà phát triển web sẽ cần. –
Vì vậy, hãy đợi bạn đặt câu hỏi, đăng nhận xét, sau đó đăng câu trả lời cho câu hỏi của riêng bạn trong vòng 6 phút? Tại sao bạn thậm chí cần Stack Overflow bạn có thể làm điều này với một tài liệu văn bản. – VoronoiPotato
@VoronoiPotato Tôi đã đăng câu trả lời cho câu hỏi của riêng tôi để câu trả lời sẽ hữu ích cho các nhà phát triển web khác - đó là điều Stack Overflow dành cho. Thậm chí còn có nút "trả lời câu hỏi của riêng bạn" được hiển thị khi đăng câu hỏi trên Mạng Stack Exchange. –