Javascript按给定数组元素拆分字符串

Javascript按给定数组元素拆分字符串,javascript,arrays,Javascript,Arrays,我已经给出了字符串“asdlfjsahdkljahskl”,并给出了数组[1,2,3,1,7,2,1,2]。我的最终输出应该是a,sd,lfj,s,ahdkl, 我知道如何分割字符串,但我不知道如何比较字符串并根据给定数组进行剪切 HTML代码 <button onclick="myFunction()">click me</button> <p id="demo"></p> 谢谢你的帮助 var string=“asdlfjsahdkljahs

我已经给出了字符串
“asdlfjsahdkljahskl”
,并给出了数组
[1,2,3,1,7,2,1,2]
。我的最终输出应该是
a
sd
lfj
s
ahdkl

我知道如何分割字符串,但我不知道如何比较字符串并根据给定数组进行剪切

HTML代码

<button onclick="myFunction()">click me</button>
<p id="demo"></p>
谢谢你的帮助

var string=“asdlfjsahdkljahsxkl”,
数组=[1,2,3,1,7,2,1,2];
函数myFunction(){
array.forEach(函数(索引){
var yourvalue=string.slice(0,索引);
log(您的值);
document.getElementById(“demo”).innerHTML+=yourvalue+'\n';
string=string.slice(索引,string.length);
});
}
点击我

var string=“asdlfjsahdkljahsxkl”,
数组=[1,2,3,1,7,2,1,2];
函数myFunction(){
array.forEach(函数(索引){
var yourvalue=string.slice(0,索引);
log(您的值);
document.getElementById(“demo”).innerHTML+=yourvalue+'\n';
string=string.slice(索引,string.length);
});
}
点击我

您可以使用存储值和新长度对字符串进行切片

var string=“asdlfjsahdkljahskl”,
数组=[1,2,3,1,7,2,1,2],
p=0,
结果=array.map(函数(a){
返回string.slice(p,p+=a);
});

控制台日志(结果)您可以使用存储值和新长度对字符串进行切片

var string=“asdlfjsahdkljahskl”,
数组=[1,2,3,1,7,2,1,2],
p=0,
结果=array.map(函数(a){
返回string.slice(p,p+=a);
});

控制台日志(结果)尼娜回答的另一种方法是将字符串转换为数组,就像您所做的那样,然后像这样使用
.splice()
函数:

var str=“asdlfjsahdkljahskl”,
arr=[1,2,3,1,7,2,1,2];
函数值(str、strLens){
str=str.split(“”);
strLens.forEach(函数(strLen){
console.log(str.splice(0,strLen.join)(“”);
});
}

提取值(str、arr)尼娜回答的另一种方法是将字符串转换为数组,就像您所做的那样,然后像这样使用
.splice()
函数:

var str=“asdlfjsahdkljahskl”,
arr=[1,2,3,1,7,2,1,2];
函数值(str、strLens){
str=str.split(“”);
strLens.forEach(函数(strLen){
console.log(str.splice(0,strLen.join)(“”);
});
}

提取值(str、arr)
j.length
没有任何意义,因为它是一个数字。您可以保留循环。您需要数组作为结果和局部变量,并在子循环后保留字符串的其余部分。您的预期输出可能错误…
j.length
没有任何意义,因为它是一个数字。您可以保留循环。您将需要数组作为结果,局部变量在子字符串之后保留字符串的其余部分。您的预期输出可能是错误的……如果没有子字符串,这怎么可能呢。map@danny老实说,你可以使用任何迭代器(假设你使用得当)——我的答案是使用
.forEach()
如果你对迭代器感兴趣,我是初学者,因此,我正在寻找非常简单的逻辑,而不是用于每个or.map。谢谢你的帮助。没有你,这怎么可能呢。map@danny老实说,你可以使用任何迭代器(假设你正确使用它们)——我的答案是使用
.forEach()
,如果你对迭代器感兴趣,我是初学者,所以我正在寻找非常简单的逻辑,而不是用于每个or.map。谢谢你的帮助。每个人都做什么?它会比较每个数组元素吗。我正在运行我的本地编辑给我的error@dannyforeach做什么?它会比较每个数组元素吗。我正在运行我的本地编辑给我的error@danny
var width = [1,4,2,6,1,1,10,1];

function myFunction() {
    var str = "abcdefghijklmnopqrstuvwxyz";
    var res = str.split("");

    for(var j=0; j.length;j++){
        document.write(width[j]);
    }
    document.getElementById("demo").innerHTML = res;
 }