首页 > 解决方案 > 将字符串按照指定长度拆分成数组

问题描述

根据指定长度将字符串拆分为数组。

有没有一种简单的方法可以用 JavaScript 中的数组来做到这一点?

我编写了以下函数来做到这一点,但有什么更短或更好的吗?

function splitIntoArr(str, num) {
  let arr = [];
  let len = Math.ceil(str.length / num);

  for (let i = 0; i < len; i++) {
     arr.push(+str.substring(i * num, i * num + num))
  }

  return arr;
}

splitIntoArr("123456789", 2)  # Outputs: [12, 34, 56, 78, 9]
splitIntoArr("123456789", 3)  # Outputs: [123, 456 ,789]
splitIntoArr("123456789", 4)  # Outputs: [1234, 5678 ,9]

标签: javascriptarraysstring

解决方案


您可以使用正则表达式和match最多所需的字符数:

const splitIntoArr = (str, num) => str.match(new RegExp(`.{1,${num}}`, 'g'));

console.log(splitIntoArr("123456789", 2));
console.log(splitIntoArr("123456789", 3));
console.log(splitIntoArr("123456789", 4));


推荐阅读