简体   繁体   中英

how can I split a string into an array with js

i have a problem why dispense doesn't get the amount of data that has been calculated by the loop.

why the demo2 doesn't count all the data totals and how to calculate the amount of data in the demo2?

 const demo1 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]; const demo2 = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"; const array_demo2 = [demo2]; let text1 = ""; let number1 = ""; for (let i = 0; i < demo1.length; i++) { number1 = (i + 1); text1 += demo1[i]; } let text2 = ""; let number2 = ""; for (let i = 0; i < array_demo2.length; i++) { number2 = (i + 1); text2 += array_demo2[i]; } document.getElementById("demo1").innerHTML = number1 +' = '+ text1; document.getElementById("demo2").innerHTML = number2 +' = '+ text2;
 <div style="display: flex"><p>Output 1 =></p>&nbsp;<p id="demo1"></p></div> <div style="display: flex"><p>Output 2 =></p>&nbsp;<p id="demo2"></p></div>

default value assigned to variable is string, as a result string concatenation is happening, assigned that to number 0 .

array_demo2 is having one string item "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15" , not the array of numbers you are thinking. You can do that using split() and map() :

const array_demo2 = demo2.split(',').map(Number);

Demo:

 const demo1 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]; const demo2 = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"; const array_demo2 = demo2.split(',').map(Number); let text1 = 0; let number1 = 0; for (let i = 0; i < demo1.length; i++) { number1 = (i + 1); text1 += demo1[i]; } let text2 = 0; let number2 = 0; for (let i = 0; i < array_demo2.length; i++) { number2 = (i + 1); text2 += array_demo2[i]; } document.getElementById("demo1").innerHTML = number1 +' = '+ text1; document.getElementById("demo2").innerHTML = number2 +' = '+ text2;
 <div style="display: flex"><p>Output 1 =></p>&nbsp;<p id="demo1"></p></div> <div style="display: flex"><p>Output 2 =></p>&nbsp;<p id="demo2"></p></div>

demo1 is an array, meaning multiple variables of the same type inside a container (the array is the container)

demo2 is a single variable, a string. you can

demo2.split(','); // to get an array like demo1, but it will be an array of strings.

array_demo2 is an array with a single element, the demo2 string. You can

array_demo2[0].split(','); // to get an array like demo2/demo1

Read more about arrays here The text is for C/++ but in Javascript arrays are very similiar.

const demo2 = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15";
const array_demo2 = [demo2];

this is not the correct way to convert it to number you're just passing a string in an array which will be on it's first index, so this array will have only 1 length.

its same like if you do lets say:

let fruit = "apple"
let fruits = [fruit];

fruits array will always have only one fruit on its first index. so the correct way is to use the .split method of array, so in your case it would be something

const demo2 = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15";
const array_demo2 = demo2.split(",");

now it will split each number seprated by "," and add it to new index on the array.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM