我有一串看起来像这样的数据
0E-11 GERBER CA 960350E-110.0215.500000000 0E-12 TEHAMA CA 960900E-11214.800000000
我想将此字符串转换为数组数组。
请注意,每4个元素后,此数组应分为新数组,最终结果应如下所示:
欲望结果:
this.tblData: Array(2)
0: ["0E-11,"GERBER", "CA", "960350E-110.0215.500000000"]
1:["0E-12", "TEHAMA", "CA" ,"960900E-11214.800000000"]
谢谢
答案 0 :(得分:2)
您可以在该字符串上使用remainder运算符和forEach循环来构建数组数组,其中每个 n 步骤都会创建每个嵌套数组:
.animated {
-webkit-animation: fade-in 1s linear 1001ms, fade-out 1s linear 3s;
-webkit-animation-fill-mode: forwards;
}
答案 1 :(得分:2)
您可以将reduce
用于此类目的
let result = "0E-11 GERBER CA 960350E-110.0215.500000000 0E-12 TEHAMA CA 960900E-11214.800000000"
.split(" ") // split the string based on the spaces
.reduce((current, item) => {
if (current[current.length - 1].length === 4) {
// in case the result array has already 4 items in it
// push in a new empty array
current.push([]);
}
// add the item to the last array
current[current.length - 1].push(item);
// return the array, so it can either be returned or used for the next iteration
return current;
}, [ [] ]); // start value for current would be an array containing 1 array
console.log(result);

首先用空格分割你的字符串,创建一个值数组,然后我们可以使用reduce
函数转换结果。
reduce
函数将第二个参数作为当前参数的起始值,该参数将作为包含1个空数组的数组开始。
在reducer中,首先检查数组中的最后一项是否长度为4,如果是,则将下一个子数组添加到数组中,然后将当前项推送到最后一个数组中。
结果将是一个包含数组的数组
答案 2 :(得分:2)
无需使用模数运算符,只需将循环计数器递增4:
var original = [
'0E-11',
'GERBER',
'CA',
'960350E-110.0215.500000000',
'0E-12',
'TEHAMA',
'CA',
'960900E-11214.800000000'
];
var result = [];
for (var i = 0; i < original.length; i += 4) {
result.push([
original[i],
original[i+1],
original[i+2],
original[i+3],
]);
}
console.log(result);
输出:[ [ '0E-11', 'GERBER', 'CA', '960350E-110.0215.500000000' ],
[ '0E-12', 'TEHAMA', 'CA', '960900E-11214.800000000' ] ]
这假设数据是4元素对齐的。