ฉันสามารถใส่อาเรย์ใน jQuery เหมือนใน PHP ได้ไหม?
ฉันสามารถใส่อาเรย์ใน jQuery เหมือนใน PHP ได้ไหม?
คำตอบ:
คุณสามารถทำได้ใน JavaScript ธรรมดาใช้Array.prototype.join
:
arrayName.join(delimiter)
ฉันไม่รู้ฟังก์ชัน jQuery ใด ๆ ที่ดีกว่านี้
แบบนี้:
[1,2,3,4].join('; ')
Array.join
คือสิ่งที่คุณต้องการ แต่ถ้าคุณต้องการคนที่เป็นมิตรที่phpjs.orgได้สร้างขึ้นมาimplode
เพื่อคุณ
จากนั้นบางหัวข้อก็คุยโวเล็กน้อย ตามที่ @jon_darkstar alreadt ชี้ให้เห็น jQuery เป็น JavaScript และไม่ได้ตรงกันข้าม คุณไม่จำเป็นต้องรู้จาวาสคริปต์เพื่อให้สามารถเข้าใจวิธีการใช้ jQuery ได้ แต่มันก็ไม่เจ็บและเมื่อคุณเริ่มชื่นชมความสามารถในการนำกลับมาใช้ใหม่หรือเริ่มดูภาพที่ใหญ่ขึ้นคุณต้องเรียนรู้อย่างยิ่ง
สำหรับการอ้างอิงในอนาคตหากคุณต้องการเลียนแบบพฤติกรรมของPHP implode()
เมื่อไม่มีการระบุตัวคั่น (แท้จริงเพียงรวมชิ้นส่วนเข้าด้วยกัน) คุณจะต้องส่งสตริงว่างลงใน Javascript ของjoin()
มิฉะนั้นจะใช้เครื่องหมายจุลภาคเป็นตัวคั่น:
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
ใช้การเข้าร่วม ()วิธีการสร้างและส่งกลับสตริงใหม่โดยเชื่อมต่อองค์ประกอบทั้งหมดในอาร์เรย์
ตัวอย่างการทำงาน
var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);
เราสามารถสร้างทางเลือกของ implode ใน 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
สร้างแทนตัวอักษรเป็น verbose ที่ไม่จำเป็น หากคุณหมดหวังที่จะสร้างฟังก์ชั่น implode สิ่งที่ชาญฉลาดจะห่อวิธีการรวมที่มีอยู่ในตัวด้วยฟังก์ชั่นของคุณเอง สิ่งที่ฉลาดกว่าคือการเรียนรู้ภาษาที่คุณใช้ในการเขียนโปรแกรม
array.join
ไม่รู้จัก ";" เป็นตัวคั่น แต่แทนที่ด้วยเครื่องหมายจุลภาค การใช้ jQuery คุณสามารถใช้$.each
เพื่อ implode อาเรย์ (โปรดทราบว่า output_saved_json เป็นอาเรย์และ tmp เป็นสตริงที่จะเก็บอาเรย์ที่ imploded):
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
ฉันได้ใช้ซับสตริงเพื่อลบ ";" ล่าสุด เพิ่มในขั้นสุดท้ายโดยไม่จำเป็น แต่ถ้าคุณต้องการคุณสามารถใช้substring
สิ่งที่ต้องการแทน:
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;
ฉันคิดว่าทางออกสุดท้ายนี้ช้ากว่าครั้งแรกเพราะต้องตรวจสอบว่าดัชนีนั้นแตกต่างจากความยาวของอาร์เรย์ทุกครั้ง$.each
หรือไม่
your_array.join(';')