在数组中的一组标识符中组合 2 个值

Combining 2 values within a set of identifiers in an array

本文关键字:标识符 一组 组合 个值 数组      更新时间:2023-09-26

我知道如何在PHP中做到这一点,但我正在处理一个javascript数组,它给我带来了很多麻烦。

我有一个数组,它将始终像这样设置:

array[0] => Keyword
array[1] => String 1
array[2] => String 2
array[3] => String 3
array[4] => Keyword
array[5] => String 4
array[6] => String 5
array[7] => Keyword

现在这可以持续一段时间,所以我的问题是如何自动解析这个数组,使其不再包含关键字并组合关键字中的值,即:字符串 1+2+3 是 1 个完整的字符串,字符串 4+5 是一个完整的字符串在一起。

如果字符串中不存在关键字,则可以使用

array.join("").split("Keyword")

(还必须摆脱可能的第一个和最后一个空元素)否则,如果您可以找到字符串或关键字中不存在的两个字符,例如 #%,你可以这样做:

array.join("#").replace(/(^|#)Keyword(#|$)/g, "%").replace(/#/g, "").split("%")
function transformArr(inputArr) {
    var resultArr = [];
    var buildString = "";
    for (i = 0; i < inputArr.length; i++) {
        if (inputArr[i] == 'Keyword') {
            if (buildString != "") {
                resultArr.push(buildString);
                buildString = "";
            }
        } else {
            buildString += inputArr[i];
        }
    }
    if (buildString != "") {
        resultArr.push(buildString);
    }
    return resultArr;
}
array = [];
array[0] = 'Keyword';
array[1] = 'String 1';
array[2] = 'String 2';
array[3] = 'String 3';
array[4] = 'Keyword';
array[5] = 'String 4';
array[6] = 'String 5';
array[7] = 'Keyword';
var result = transformArr(array);
console.log(result);