在数组中的一组标识符中组合 2 个值
Combining 2 values within a set of identifiers in an array
我知道如何在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);
相关文章:
- fluxxor向一个flux实例添加一组以上的操作
- 我们怎样才能将内含子J用于一组特定的元素
- 使用linq.js按当前日期订购一组momentjs日期
- 正则表达式,从一组关键字中获取奇数
- 创建一组元素JointJS
- 如何在javascript中获取一组复选框值
- 一组(共组..)
- 使用JS将页面中的每个字母设置为随机颜色.为什么在页面的每个打开标记之前总是有一组额外的span标记
- 在一组复选框中,一次只允许选择一个
- 为什么在fabricjs中可选择的不适用于一组圆
- 如何在不刷新页面的情况下每次单击一组选项卡时刷新视图内容窗格
- 从一组具有相同起始和结束的所有段落的段落中提取包含特定字符串的段落
- 简单的Javascript文本编辑器或一组函数
- 基于日期范围的一组日期范围内的天数
- 处理对象数组并将它们以 4 个为一组进行分配
- 如何在 Javascript 中用一组字符拆分子字符串上的字符串
- 使一组对象与 jQuery 一起拖动
- 使用第 n 个类型设置一组八个元素的样式
- 一次循环遍历一组
- 在数组中的一组标识符中组合 2 个值