我想知道如何组合一个数组的两个或多个相邻元素。
例如,我有一个数组arr = ['a','bb','ccc','d','e','f','g','hhhhhhhh']
,我想连接一些元素使它成为['a','bb', 'ccc', 'defg','hhhhhhhh']
。具体来说,我想要执行以下操作:如果元素的长度小于其索引加1,我想将其与后面的元素连接,从而消除后面的元素。 (即,对于这个例子,因为arr[3].length
< = 3 + 1,它会跟随它后面的元素连接起来,直到arr[3].length == 3+1
。)我将从循环中执行它,并且正在工作在数组中从左到右。
有没有简单的方法在JavaScript中执行此操作?
谢谢!
答案 0 :(得分:5)
只需将您的英语转换为JavaScript:
for (var i = 1; i < array.length - 1; i++) { // I want to concatenate the middle elements
while (array[i].length <= i && typeof array[i + 1]!='undefined' ) { //if an element's length is less than or equal to its index
array[i] += array[i + 1]; //I want to concatenate it with the element that follows
array.splice(i + 1, 1); //eliminating the element that follows
}
}
看到它的实际效果:
var array = ['a', 'bb', 'ccc', 'd', 'e', 'f', 'g', 'hhhhhhhh'];
for (var i = 1; i < array.length - 1; i++) {
while (array[i].length <= i && typeof array[i + 1]!='undefined' ) {
array[i] += array[i + 1];
array.splice(i + 1, 1);
}
}
alert(array.join(', '));