这段代码首先定义了一个数组 array1,包含了待处理的元素。接着,定义了一个空数组 array2,用于存储最终结果。

第一个循环遍历 array1,如果遇到包含 'DTCode' 的元素,就将该元素作为新的一行添加到 array2 中,并更新 dtCodeIndex。如果遇到包含 'TxtID' 的元素,就将该元素添加到 array2 的当前行中。

第二个循环遍历 array2,根据 'DTCode' 和 'TxtID' 的数量,插入空字符串以实现对齐。

最后,输出 array2,即为所需的结果。

var array1 = ['DTCode 5000', 'TxtID 1369', 'DTCode 6313', 'TxtID 1370', 'DTCode 9020', 'TxtID 1162', 'TxtID 11451', 'DTCode 9643', 'TxtID 1357', 'DTCode 9645', 'TxtID 1358'];
var array2 = [];
var dtCodeIndex = -1;

for (var i = 0; i < array1.length; i++) {
  if (array1[i].includes('DTCode')) {
    array2.push([array1[i]]);
    dtCodeIndex++;
  } else if (array1[i].includes('TxtID')) {
    array2[dtCodeIndex].push(array1[i]);
  }
}

for (var i = 0; i < array2.length; i++) {
  var dtCodeCount = array2[i].length - 1;
  var txtIDCount = dtCodeCount - 1;
  
  for (var j = 1; j < dtCodeCount; j++) {
    array2[i].splice(j, 0, '');
  }
  
  for (var j = 1; j < txtIDCount; j += 2) {
    array2[i].splice(j, 0, '');
  }
}

console.log(array2);

需要注意的是,这段代码假设每次遇到 'DTCode' 元素时,必定会有对应的 'TxtID' 元素。如果存在不符合这个假设的情况,代码可能会出现错误。

JavaScript 数组处理:将带 'DTCode' 和 'TxtID' 元素分组到二维数组

原文地址: http://www.cveoy.top/t/topic/g1t0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录