I am trying to split a string into an array with each iteration of my for-loop. Like if a string is 1234 then I want to split it ['12','34'].
I want to split this string into different ways. Like ['1','2','3','4'], ['123','4'], etc. But I don't know how can I do so?
The string "31173" can be split into prime numbers in 6 ways:
[3, 11, 7, 3]
[3, 11, 73]
[31, 17, 3]
[31, 173]
[311, 7, 3]
[311, 73]
let k=1;
for(let i=0; i<inputStr.length; i++){
if(k<inputStr.length){
// split string
let splittedNums=inputStr.split('',i+k);
for(let j=0; j<splittedNums.length; j++){
if(isPrime(splittedNums[j]))
result.push([splittedNums[j]]);
}
}
k++;
}
I tried using the split() function but as I learned from the docs that it will use a limit to split the string and return it. So, It won't work like this.
I want to split and check whether the number is prime or not and then push it into the array. So that in the end, I will get the subarrays that contain prime numbers.
How can I split a string and then turn it into an array like this in javascript?
One of the solution. I tried to explain the steps in the comment but just to summary
const str = "12345678";
// split the array
const strArr = str.split("");
// loop through the str array and split with a character got by index
const splitedStr = strArr.map((each, index) => {
// this will split the string by index char but we will lose the separator passed
const withoutSeparator = str.split(str[index]);
const lastIndex = withoutSeparator.length - 1; // get last element of array
// to get the separator back.
// basically we are appending the separator char to last item of the array
withoutSeparator[lastIndex] = str[index] + withoutSeparator[lastIndex];
return withoutSeparator;
});
console.log({ splitedStr });
Output
{
splitedStr: [
[ '', '12345678' ],
[ '1', '2345678' ],
[ '12', '345678' ],
[ '123', '45678' ],
[ '1234', '5678' ],
[ '12345', '678' ],
[ '123456', '78' ],
[ '1234567', '8' ]
]
}