HLJ 发布于
2019-04-23 17:34:36

五种Javascript将每2个字符拆分为数组的方法

方法一:
var a = 12345678;
a= a.toString();
var arr=[];
for (var i =0; i<a.length-1; i++) {
 arr.push(Number(a[i]+''+a[i+1]));
}
console.log(arr);
方法二:
使用Array.from()函数
var str = "12345678",
    length = str.length - 1,
    output = Array.from({ length }, (_,i) => +str.slice(i, i+2))
console.log(output)
方法三:
根据参数值大小的方案:
function getChunks(number, size) {
  let str = number.toString(),
      length = str.length - size + 1;
      
  return Array.from({ length }, (_,i) => +str.slice(i, i + size))
}
console.log(getChunks(12345, 3))
console.log(getChunks(12345678, 2))
方法四:
使用Array.reduce:
首先,将数字转换为字符串,然后将其拆分为数组
其次,对结果数组使用reduce,然后ele仅在下一个元素存在时才将当前元素与下一个元素相加。
最后,在使用current和next元素完成append之后,通过在算术运算符前+添加前缀将其转换为数字,然后将其添加到累加器数组中。
var a = 12345678;
const result = a.toString().split("").reduce((acc, ele, idx, arr) => {
  return arr[idx + 1] ? acc.concat(+(ele + arr[idx + 1])) : acc;
}, []);
console.log(result);
console.assert(result, [12,23,34,45,56,67,78]);

方法五:
var str ='12345678';
const eleven = string => {
  let result = [];
  let singles = string.split('');
  let first = Number(singles.splice(0, 2).join(''));
  for (let i = 0; i < string.length-1; i++) {
    let next = 11 * i;
    result.push(first+next);
  }
  return result;
}  
console.log(eleven(str));

输出结果:

数组

当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2019-04-23/413.html
最后生成于 2022-08-30 09:07:52