2016-04-01 38 views
0

我正在使用javascript推送数组中的元素。如何追加数组中的两个元素?

,我的数据推入阵后,得到了下面

["api", "management", "provision", "tenant", "external", "provider"] => Correct 

输出现在我想从阵列管理提供追加合并两个元素,并希望输出这样

["api", "management/provision", "tenant", "external", "provider"] 

我该怎么做?

任何例子是为我好

thanx提前

+3

删除他们两个,在连接字符串然后将连接的字符串添加回数组。你试过什么了? – Igor

回答

4

你可以做最简单的事情是消除他们两个,联同/,并在合适的地方放。

var input = ["api", "management", "provision", "tenant", "external", "provider"]; 
input.splice(1,3, input.slice(1,3).join('/')); 
// now input contains ["api", "management/provision", "external", "provider"] 

这可以进一步取得更好的可读性和可重复使用的:

function mergeTerms(startIndex, endIndex, array) { 
    var input = array.slice(0); // make a shallow copy of the array in order not to mutate it 
    input.splice(startIndex, endIndex, input.slice(startIndex, endIndex).join('/')); 
    return input; 
} 

然后:

mergeTerms(1, 3, input); 
+0

这是最好的解决方案 - 好东西! –

1

比方说,它的变种数组保存的值。

var temp = array.splice(2,3); 
array[1] = array[1]+"/"+temp; 
1
function mergeArrayEntries(e1, e2, arr) { 
var index = -1; 
    for (var i = 0; i < arr.length; i++) { 
    if (arr[i] == e1) { 
     index = i; 
    } 
    if (arr[i] == e2 && index > -1) { 
     arr[index] = arr[index]+"/"+arr[i]; 
     arr.splice(i, 1); 
    } 
    } 
} 

此功能的搜索,你可以在一行代码做到这一点对于arr中的e1和e2,一旦找到,它将它们合并到e1的位置并删除arr中的e2条目。

希望它有助于

1

不是最好的代码,而不是在所有可重复使用的,但会给你你在找什么---只是另一种方法

var array = ["api", "management", "provision", "tenant", "external", "provider"]; 
var subArray = []; 
subArray.push(array[1]); 
subArray.push(array[2]) 
array.splice(1, 2); 
subArray = subArray.join("/") 
array.splice(1, 0, subArray);