ฉันมีอาร์เรย์ดังนี้:
var sphValues = [1, 2, 3, 4, 5];
จากนั้นฉันต้องแปลงอาร์เรย์ด้านบนเช่นด้านล่าง:
var sphValues = ['1', '2', '3', '4', '5'];
ฉันจะแปลงได้อย่างไร? ฉันใช้สิ่งนี้สำหรับการเติมข้อความอัตโนมัติ
ฉันมีอาร์เรย์ดังนี้:
var sphValues = [1, 2, 3, 4, 5];
จากนั้นฉันต้องแปลงอาร์เรย์ด้านบนเช่นด้านล่าง:
var sphValues = ['1', '2', '3', '4', '5'];
ฉันจะแปลงได้อย่างไร? ฉันใช้สิ่งนี้สำหรับการเติมข้อความอัตโนมัติ
[1,2,3,4,5].toString().split(",")
คำตอบ:
ใช้Array.map:
var arr = [1,2,3,4,5];
var strArr = arr.map(function(e){return e.toString()});
console.log(strArr); //["1", "2", "3", "4", "5"]
แก้ไข:
ดีกว่าที่จะใช้arr.map(String);เป็น @elclanrs ที่กล่าวถึงในความคิดเห็น
เพียงแค่ใช้วิธีอาร์เรย์
var sphValues = [1,2,3,4,5]; // [1,2,3,4,5]
sphValues.join().split(',') // ["1", "2", "3", "4", "5"]
for(var i = 0; i < sphValues.length; i += 1){
sphValues[i] = '' + sphValues[i];
}
ใช้.map()ในบริบทนี้ซึ่งเป็นการเคลื่อนไหวที่ดีกว่าและคุณสามารถทำเช่นเดียวกับโค้ดด้านล่างซึ่งจะเพิ่มความสามารถในการอ่านโค้ดของคุณมากขึ้น
sphValues.map(convertAsString);
function convertAsString(val) {
return val.toString();
}
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"]
คุณสามารถต่อท้าย '' เพื่อแปลงเป็นประเภทสตริงได้
var sphValues = [1,2,3,4,5];
for(var itr = 0; itr<sphValues.length;itr++){
sphValues[itr] = '' + sphValues[itr];
}
const nums = [1, 2, 3, 4, 5];
const strs = Array.from(nums.join(``));
console.log(strs);
sphValues.map(String)