创建给定字符串的指定副本的字符串
Create a string of specified copies of a given string
我正在尝试对原始字符串进行 3 次迭代。我得到的结果是:
[“a”,“b”,“c”,“d”,未定义,未定义,未定义,未定义,未定义,未定义,未定义,未定义,未定义,未定义,未定义,未定义]
正确的结果应该是:["a", "b", "c", "d", "a", "b", "c", "d", "a", "b ", "c", "d"]
function makeCopies (str, howmany) {
let newCopy = [];
for(let i = 0; i < str.length * howmany; i++) {
newCopy.push(str[i])
}
return newCopy;
}
console.log(makeCopies("abcd", 3))
我尝试了很多变体,但没有任何效果,这是我得到的最接近的。
Javascript 对此 String.prototype.repeat 有一个很好的实用程序。如果你想要一个数组,你可以在每个字符上拆分它。
console.log("abcd".repeat(3).split(""))
您正在迭代原始字符串的范围之外
str[i]; // i < str.length * howmany;
尝试创建两个循环:
for(let i = 0; i < howmany; i++) {
for(let j = 0; j < str.length; j++) {
newCopy.push(str[j])
}
}
当你乘str.length * howmany
时,数组的长度变为 12,当它超过第四个值时,它找不到任何东西,因此变得不确定。
一个解决方案是您可以将主循环包装在另一个循环中,该循环将 运行 howmany
次。
function makeCopies (str, howmany) {
let newCopy = [];
for (let i = 0; i < howmany; i++) {
for(let j = 0; j < str.length; j++) {
newCopy.push(str[j])
}
}
return newCopy;
}
console.log(makeCopies("abcd", 3))
JavaScript 有一个字符串重复方法。您可以只使用 "abcd".repeat(3)
,您将得到“abcdabcdabcd”。如果你真的想要一个字符数组,你可以将字符串扩展到一个数组中 [..."abcd".repeat(3)]
.
const makeCopies = (string, count) => new Array(count).join(string).split('');
console.log(makeCopies('abcd', 4))
你为什么不用repeat()
?
const res = "abc".repeat(3); // abcabcabc
如果你需要它作为数组,你可以:
res.split(""); // ["a", "b", "c", ...]
我正在尝试对原始字符串进行 3 次迭代。我得到的结果是: [“a”,“b”,“c”,“d”,未定义,未定义,未定义,未定义,未定义,未定义,未定义,未定义,未定义,未定义,未定义,未定义]
正确的结果应该是:["a", "b", "c", "d", "a", "b", "c", "d", "a", "b ", "c", "d"]
function makeCopies (str, howmany) {
let newCopy = [];
for(let i = 0; i < str.length * howmany; i++) {
newCopy.push(str[i])
}
return newCopy;
}
console.log(makeCopies("abcd", 3))
我尝试了很多变体,但没有任何效果,这是我得到的最接近的。
Javascript 对此 String.prototype.repeat 有一个很好的实用程序。如果你想要一个数组,你可以在每个字符上拆分它。
console.log("abcd".repeat(3).split(""))
您正在迭代原始字符串的范围之外
str[i]; // i < str.length * howmany;
尝试创建两个循环:
for(let i = 0; i < howmany; i++) {
for(let j = 0; j < str.length; j++) {
newCopy.push(str[j])
}
}
当你乘str.length * howmany
时,数组的长度变为 12,当它超过第四个值时,它找不到任何东西,因此变得不确定。
一个解决方案是您可以将主循环包装在另一个循环中,该循环将 运行 howmany
次。
function makeCopies (str, howmany) {
let newCopy = [];
for (let i = 0; i < howmany; i++) {
for(let j = 0; j < str.length; j++) {
newCopy.push(str[j])
}
}
return newCopy;
}
console.log(makeCopies("abcd", 3))
JavaScript 有一个字符串重复方法。您可以只使用 "abcd".repeat(3)
,您将得到“abcdabcdabcd”。如果你真的想要一个字符数组,你可以将字符串扩展到一个数组中 [..."abcd".repeat(3)]
.
const makeCopies = (string, count) => new Array(count).join(string).split('');
console.log(makeCopies('abcd', 4))
你为什么不用repeat()
?
const res = "abc".repeat(3); // abcabcabc
如果你需要它作为数组,你可以:
res.split(""); // ["a", "b", "c", ...]