2016-04-01 25 views
0

私はjavascriptを使用して配列内の要素をプッシュしています。配列に2つの要素を追加する方法は?

と私は今、私はこの

["api", "management/provision", "tenant", "external", "provider"] 
のような出力を配列 管理提供から2つの要素を追加して欲しいたいアレイにデータをプッシュした後、この

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

のような出力を取得しています

どうすればいいですか?

任意の例では、

+3

文字列を連結、それらの両方を削除します連結された文字列を配列に追加して戻します。これまでに何を試しましたか? – Igor

答えて

4

あなたがすることができる最も簡単な方法は、それらの両方を削除/と結合し、適切な場所に置くことです。あなたは、1行のコードでこれを行うことができます。

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配列を言うことができます事前に私

ありがとうのために良いでしょう。

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); 
関連する問題