[英]Convert a String to an Array in Javascript without using split() or any built-in methods and with no more than 1 parameter?
Convert a String to an Array in Javascript without using split() or any built-in methods?在 Javascript 中将字符串转换为数组而不使用 split() 或任何内置方法?
input:输入:
str = "Iam a fullstack javascript developer"
output:输出:
arr = [ 'Iam', 'a', 'fullstack', 'javascript', 'developer' ]
confirmation:确认:
console.log(arr[0]) // Iam
var str="Iam a fullstack javascript developer"; var strCharArr; [...strCharArr]=str; var arr=strCharArr.reduce((acc, cv)=>{if(cv==" ") acc.push(""); else acc[acc.length-1]+=cv; return acc;},[""]); console.log(arr);
[...strCharArr]=str
splits the string into an array of characters. [...strCharArr]=str
将字符串拆分为字符数组。
reduce
starts with an array of one element of empty string ( [""]
), reduce
以一个包含一个空字符串元素的数组( [""]
)开始,
and either adds characters, or, in case of a space, adds an empty string element.并且要么添加字符,要么在空格的情况下添加一个空字符串元素。
Here is the solution这是解决方案
function stringToArray(str) {
let arr = [''];
let j = 0;
for (let i = 0; i < str.length; i++) {
if (str.charAt(i) == " ") {
j++;
arr.push('');
} else {
arr[j] += str.charAt(i);
}
}
return arr;
}
const arr = stringToArray("Iam a fullstack javascript developer")
console.log(arr[0]) // Iam
Recursive approach with using indexOf
and slice
使用
indexOf
和slice
递归方法
str = "Iam a fullstack javascript developer"; const split = (str, arr) => { const index = str.indexOf(" "); if (index > -1) { arr.push(str.slice(0, index)); split(str.slice(index + 1), arr); } else { arr.push(str); } return ""; }; const chunks = (str) => { const arr = []; split(str, arr); return arr; }; console.log(chunks(str));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.