แปลงอาร์เรย์จำนวนเต็มเป็นสตริงอาร์เรย์ใน JavaScript


88

ฉันมีอาร์เรย์ดังนี้:

var sphValues = [1, 2, 3, 4, 5];

จากนั้นฉันต้องแปลงอาร์เรย์ด้านบนเช่นด้านล่าง:

var sphValues = ['1', '2', '3', '4', '5'];

ฉันจะแปลงได้อย่างไร? ฉันใช้สิ่งนี้สำหรับการเติมข้อความอัตโนมัติ


27
sphValues.map(String)
elclanrs

6
@elclanrs คุณควรโพสต์เป็นคำตอบไม่ใช่แสดงความคิดเห็น
Mr. Alien

7
[1,2,3,4,5].toString().split(",")
Mr_Green

1
@SonalPM คุณควรอ้างถึง markdown เนื่องจากคุณมีปัญหาในการโพสต์ความคิดเห็นพร้อมลิงก์เพราะคุณโพสต์และลบความคิดเห็นของคุณ 4 ครั้งตอนนี้ 5
Mr. Alien

คำตอบ:


201

คุณสามารถใช้แผนที่และส่งตัวสร้างสตริงเป็นฟังก์ชันซึ่งจะเปลี่ยนตัวเลขแต่ละตัวให้เป็นสตริง:

sphValues.map(String) //=> ['1','2','3','4','5']

สิ่งนี้จะไม่กลายพันธุ์ sphValues มันจะส่งกลับอาร์เรย์ใหม่


6
ฉันไม่เข้าใจว่าเหตุใดจึงไม่ยอมรับสิ่งนี้เป็นคำตอบ
MarsOne

3
สำหรับเบราว์เซอร์รุ่นเก่าที่ไม่รองรับ Array.map คุณสามารถใช้ underscore.js: _.map (sphValues, String)
Jonas Anseeuw

น่าเสียดายที่สิ่งนี้จะแปลงบูลีนเป็นสตริงด้วย
Dev




6

ใช้.map()ในบริบทนี้ซึ่งเป็นการเคลื่อนไหวที่ดีกว่าและคุณสามารถทำเช่นเดียวกับโค้ดด้านล่างซึ่งจะเพิ่มความสามารถในการอ่านโค้ดของคุณมากขึ้น

sphValues.map(convertAsString);

function convertAsString(val) {
  return val.toString();
}

3
 var value;
 for (var i = 0; i < data3.sph.length; i++) {
     value = data3.sph[i];
     //sphValues[i] = data3.sph[i];
     var obj = {
         label: value
     };
     sphValues.push(obj);
 }

คุณสามารถใช้วิธีนี้เพื่อเติมข้อความอัตโนมัติ ฉันคิดว่าปัญหาของคุณจะได้รับการแก้ไข แต่จะไม่แปลงอย่างที่คุณต้องการ แต่จะแปลงเป็นแบบ

["label": "val1", "label": "val2"]

2

คุณสามารถต่อท้าย '' เพื่อแปลงเป็นประเภทสตริงได้

var sphValues = [1,2,3,4,5];
for(var itr = 0; itr<sphValues.length;itr++){
  sphValues[itr] = '' + sphValues[itr];
}

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