Câu trả lời:
Bạn có thể làm điều này bằng JavaScript đơn giản, sử dụng Array.prototype.join
:
arrayName.join(delimiter)
Tôi không biết bất kỳ hàm jQuery nào tốt hơn.
Array.join
là những gì bạn cần, nhưng nếu bạn thích, những người thân thiện tại phpjs.org đã tạo ra implode
cho bạn.
Sau đó một số chủ đề hơi lạc đề. Như @jon_darkstar alreadt đã chỉ ra, jQuery là JavaScript chứ không phải ngược lại. Bạn không cần biết JavaScript để có thể hiểu cách sử dụng jQuery, nhưng chắc chắn nó không gây hại và một khi bạn bắt đầu đánh giá cao khả năng sử dụng lại hoặc bắt đầu nhìn vào bức tranh lớn hơn, bạn thực sự cần phải học nó.
Để tham khảo trong tương lai, nếu bạn muốn bắt chước hành vi của PHP implode()
khi không có dấu phân cách nào được chỉ định (nghĩa đen chỉ là nối các phần lại với nhau), bạn cần chuyển một chuỗi trống vào Javascript join()
nếu không nó mặc định sử dụng dấu phẩy làm dấu phân cách:
var bits = ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'];
alert(bits.join()); // H,e,l,l,o, ,W,o,r,l,d
alert(bits.join('')); // Hello World
Sử dụng phương thức tham gia () tạo và trả về một chuỗi mới bằng cách nối tất cả các phần tử trong một mảng.
Ví dụ làm việc
var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);
Chúng tôi có thể tạo thay thế cho mã hóa trong javascript:
function my_implode_js(separator,array){
var temp = '';
for(var i=0;i<array.length;i++){
temp += array[i]
if(i!=array.length-1){
temp += separator ;
}
}//end of the for loop
return temp;
}//end of the function
var array = new Array("One", "Two", "Three");
var str = my_implode_js('-',array);
alert(str);
Array
tạo thay vì nghĩa đen là dài dòng không cần thiết. Nếu bạn mong muốn tạo lại hàm implode, điều thông minh sẽ là bọc phương thức nối liền với hàm riêng của bạn. Điều thông minh hơn là học ngôn ngữ bạn đang lập trình.
array.join
đã không nhận ra ";" làm thế nào một dấu phân cách, nhưng thay thế nó bằng dấu phẩy. Sử dụng jQuery, bạn có thể sử dụng $.each
để mã hóa một mảng (Lưu ý rằng output_satted_json là mảng và tmp là chuỗi sẽ lưu trữ mảng được mã hóa):
var tmp = "";
$.each(output_saved_json, function(index,value) {
tmp = tmp + output_saved_json[index] + ";";
});
output_saved_json = tmp.substring(0,tmp.length - 1); // remove last ";" added
Tôi đã sử dụng chuỗi con để loại bỏ ";" thêm vào cuối cùng mà không cần thiết Nhưng nếu bạn thích, bạn có thể sử dụng thay vì substring
một cái gì đó như:
var tmp = "";
$.each(output_saved_json, function(index,value) {
tmp = tmp + output_saved_json[index];
if((index + 1) != output_saved_json.length) {
tmp = tmp + ";";
}
});
output_saved_json = tmp;
Tôi nghĩ giải pháp cuối cùng này chậm hơn giải pháp thứ nhất vì nó cần kiểm tra xem chỉ số có khác với chiều dài của mảng mỗi lần $.each
không kết thúc hay không.
your_array.join(';')