我给出了字符串"asdlfjsahdkljahskl"
并给出了数组[1,2,3,1,7,2,1,2]
。我的最终输出应该是a
、sd
、lfj
、s
、ahdklja
、hs
、kl
。
我知道如何拆分字符串,但我不知道如何比较字符串并根据给定的数组进行切割
网页代码
<button onclick="myFunction()">click me</button>
<p id="demo"></p>
JavaScript
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;
}
谢谢你的帮助
您可以使用存储的值和新长度对字符串进行切片。
var string = "asdlfjsahdkljahskl",
array = [1, 2, 3, 1, 7, 2, 1, 2],
p = 0,
result = array.map(function (a) {
return string.slice(p, p += a);
});
console.log(result);
与for
循环相同
var string = "asdlfjsahdkljahskl",
array = [1, 2, 3, 1, 7, 2, 1, 2],
p = 0,
i = 0,
result = []
for (i = 0; i < array.length; i++) {
result.push(string.slice(p, p + array[i]));
p += array[i];
}
console.log(result);
var string="asdlfjsahdkljahsxkl",
array=[1,2,3,1,7,2,1,2];
function myFunction() {
array.forEach(function(index){
var yourvalue=string.slice(0,index);
console.log(yourvalue);
document.getElementById("demo").innerHTML += yourvalue+'n';
string=string.slice(index,string.length);
});
}
<button onclick="myFunction()">click me</button>
<p id="demo"></p>
Nina 答案的另一种方法是将字符串转换为数组,就像您所做的那样,并使用 .splice()
函数,如下所示:
var str = "asdlfjsahdkljahskl",
arr = [1, 2, 3, 1, 7, 2, 1, 2];
function extractValues (str, strLens) {
str = str.split("");
strLens.forEach(function (strLen) {
console.log(str.splice(0, strLen).join(""));
});
}
extractValues(str, arr);