字符串转换成数组

一个字符串:比如

var a = "法师法师大法师法师";
分割成数组为
["法师法师大","法师法师"];
每五个分割,请问怎么分割的
我for循环写的,不对,
for (let j = 0; j < a.length; j += 5){
      let titlj = a;
      titlj += titlj[j].split(",")
      console.log(titlj[j].split(",")); //['法'] ['法']
    }
  我实际问题是这样的:
  在angualr里面定义了一个lists:
  lists: Array<any> = [
        {
          title: ['从业人数'],
          text: '成xx'
        },
        {
          title: ['核准日期'],
          text: '成xx'
        },
        {
          title: ['企业类型'],
          text: '成xx'
        }
      ]
     然后定了了一个方法:
         textRight() {
            console.log(this.lists)
            for (let i = 0; i < this.lists.length; i++) {
              var str = this.lists[i].title.join();
              for (let j = 0; j < str.length / 4 ; j++) {
                var text = str.slice(j * 4, (j + 1) *4);
                // console.log(text);
                var arrtext = text.split(',');
                // console.log(arrtext);
                this.lists[i].title = [];
                this.lists[i].title.concat(arrtext);
                
                this.lists[i].title = this.lists[i].title.concat(arrtext)
                console.log(this.lists[i].title);
        
              }
              console.log(this.lists[i].title);
            }
          }
     然后只能有一个  截取一个
     

clipboard.png

     
     好像是循环有问题,执行到第二个循环的时候,j等于1的时候就不往下执行了
     

clipboard.png

阅读 4k
4 个回答
a.split(/(?<=^(?:\S{5})+)/)

只有在新版浏览器里能用,而且是用polyfill和babel都没办法兼容的

 var a = "中国人民共和国万岁世界人民大团结万岁";

    function SplitStrToArr(str, num) {
      var arr = [];
      for (let j = 0; j < str.length / num; j++) {
        var text = str.slice(j * num, (j + 1) * num);
        arr.push(text);
      }
      return arr;
    }
    console.log(SplitStrToArr(a, 5))
function splitWords(word, num) {
    let slices = [];
    const chars = word.split('');
    while (chars.length > 0) {
        slices = slices.concat(chars.splice(0, num).join(''));
    }
    return slices;
}

console.log(splitWords('法师法师大法师法师', 5));

输出

[ '法师法师大', '法师法师' ]
let str = "法师法师大法师法师";
let size = 5;
let length = Math.round(str.length / size);
const result = [];
for (let i = 0; i < length; i++) {
  result.push(str.substr(i * size, size))
}
console.log(result)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题