JavaScript 数组处理:将带 'DTCode' 和 'TxtID' 元素分组到二维数组
这段代码首先定义了一个数组 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' 元素。如果存在不符合这个假设的情况,代码可能会出现错误。
原文地址: http://www.cveoy.top/t/topic/g1t0 著作权归作者所有。请勿转载和采集!