请问js如何每隔两个逗号将字符串分割成一个数组

008,00801,008,00802,009,00901
像这样的数据每隔两个逗号分割成一个数组

阅读 7.1k
4 个回答
function splitNumberByGroup(str, group) {
  var nums = str.split(',');
    return nums.reduce((res, num, i) => {
        res[i/group|0].push(num)
        return res;
    }, Array.from({length: Math.ceil(nums.length/group)}, () => []))
}

splitNumberByGroup('008,00801,008,00802,009,00901', 2)
let str = '008,00801,008,00802,009,00901';
let ar  = str.split(',');
let newArray = [];

for (index in ar) {
      if (index %2 != 0) {
        newArray.push(ar[index-1]+','+ar[index]);
    }
}
if (ar.length %2 != 0) {
 newArray.push(ar[ar.length-1]);  
}
console.log(newArray);

let str = "008,00801,008,00802,009,00901";

let arr = str.split(",");
let num = 2;
let newArr = arr.reduce((pre, cur, index) => {
  if (index % num === 0) {
    return pre.concat([arr.slice(index, index + num)]);
  } else {
    return pre;
  }
}, []);
console.log("newarr==", newArr);

一个低效的正则

'008,00801,008,00802,009,00901'.split(/(?<=^(?:[^,]*?,[^,]*?,)*?[^,]*?,[^,]*?),/)
// ["008,00801", "008,00802", "009,00901"]

或者如果确保只包含数字和逗号的话:

'008,00801,008,00802,009,00901'.split(/(?<=^(?:\d*?,\d*?,)*?\d*?,\d*?),/)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题