Javascript - 用字符串中的元素重复构建一个数组

3
假设有一个字符串aba和限制为5。如何创建一个数组,其中的元素从该字符串重复,直到达到限制?例如,string = "aba"limit = 5 将给出新的array ["a","b","a","a","b"]。目前,我的数组填充了所有字符,然后空字符串重复了剩余索引的位置。

function repeatedString(s, n) {
  let arr = [];
  for (let i = 0; i < n; i++) {
    let char = s.charAt(i);
    arr.push(char);
  }
  console.log(arr);
}

repeatedString("aba", 5)

3个回答

5

你的代码已经接近完成了。你只需要在使用.charAt()时让你的索引回到0,当你达到字符串的长度时。这可以通过使用字符串的长度和取模运算符%)来实现,如下所示:

function repeatedString(s, n) {
  let arr = [];
  for (let i = 0; i < n; i++) {
    let char = s.charAt(i % s.length);
    arr.push(char);
  }
  console.log(arr);
}

repeatedString("aba", 5)


2
你可以获取一个填充后的字符串数组。

var string = 'aba',
    limit = 5,
    result = Array.from(''.padStart(limit, string));

console.log(result);   


1
你可以使用字符串函数来完成这些操作:
  • 计算需要重复给定的字符串的次数。
  • 重复该字符串,并从中提取长度为n的子字符串。
  • 按单个字符拆分此字符串。

function repeatedString(s, n) {
  const repeatCount = Math.ceil(n/s.length);
  return s.repeat(repeatCount).slice(0, n).split('');
}

console.log(repeatedString("aba", 5))


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接