เพิ่มอักขระลงในสตริงใน Javascript


108

ฉันต้องการเพิ่มอักขระ For Loop ในสตริงว่าง ฉันรู้ว่าคุณสามารถใช้ฟังก์ชัน concat ใน Javascript เพื่อทำการต่อด้วยสตริง

var first_name = "peter"; 
var last_name = "jones"; 
var name=first_name.concat(last_name) 

แต่ด้วยตัวอย่างของฉันมันไม่ได้ผล มีความคิดอย่างไรที่จะทำวิธีอื่น?

รหัสของฉัน:

    var text ="";
    for (var member in list) {
            text.concat(list[member]);
    }

1
ถ้า list เป็นอาร์เรย์อย่าใช้for...inแต่เป็นforลูปปกติ ข้อมูลเพิ่มเติมที่นี่: developer.mozilla.org/en/JavaScript/Reference/Statements/… Btw หากคุณดูทั้งสองตัวอย่างของคุณอย่างใกล้ชิดคุณจะเห็นความแตกต่าง ( name=first_name.concat(last_name)เทียบกับtext.concat(list[member])
Felix Kling

คำตอบ:


154
var text ="";
for (var member in list) {
        text += list[member];
}

วิธีที่ดีกว่าคือรับกุญแจจากวัตถุแทนการทำซ้ำ ( for...in) และเข้าร่วมกับสิ่งเหล่านั้น: var text = ""; text += Object.keys(list).join('')
Blazes

50

คุณยังสามารถเพิ่มสตริงให้กับสตริงที่มีอยู่ได้เช่นนี้:

var myString = "Hello ";
myString += "World";
myString += "!";

ผลลัพธ์จะเป็น -> Hello World!



5

ดูเหมือนว่าคุณต้องการใช้joinเช่น:

var text = list.join();

1
ใช้ได้กับอาร์เรย์เท่านั้น แต่ฉันกลัวว่า OP ใช้for...inในการสำรวจอาร์เรย์ดังนั้นคำแนะนำของคุณอาจใช้งานได้
Felix Kling

5

ในการใช้ String.concat คุณต้องแทนที่ข้อความที่มีอยู่เนื่องจากฟังก์ชันไม่ได้ทำงานโดยการอ้างอิง

var text ="";
for (var member in list) {
        text = text.concat(list[member]);
}

แน่นอนว่าคำแนะนำ join () หรือ + = ที่เสนอโดยผู้อื่นจะทำงานได้ดีเช่นกัน


นี่เป็นทางออกที่ดีเพราะเปิดประตูทิ้งไว้สำหรับการต่อสายฟังก์ชัน
Mark Carpenter Jr

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.