Javascript:如何组合数组的两个相邻元素

时间:2015-01-27 15:50:35

标签: javascript arrays

我想知道如何组合一个数组的两个或多个相邻元素。

例如,我有一个数组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中执行此操作?

谢谢!

1 个答案:

答案 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(', '));