2016-04-01 76 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);