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

时间:2012-06-25 16:37:56

标签: javascript arrays

我知道如何在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是一个完整的字符串。

2 个答案:

答案 0 :(得分:1)

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

执行此操作
array.join("").split("Keyword")

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

array.join("#").replace(/(^|#)Keyword(#|$)/g, "%").replace(/#/g, "").split("%")

答案 1 :(得分:0)

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);