で構成される new_array を作成しようとしていますold_array[0] + old_array2.slice(1)
から3番目の一時配列を作成しない限り、ここでconcatがどのように役立つかわかりませんold_array[0]
。
それが唯一の方法ですか?
で構成される new_array を作成しようとしていますold_array[0] + old_array2.slice(1)
から3番目の一時配列を作成しない限り、ここでconcatがどのように役立つかわかりませんold_array[0]
。
それが唯一の方法ですか?
var a = [1,2,3];
var b = [4,5,6];
次に、必要な結果に応じて 2 つのオプションがあります。また:
var c = a.slice(1).concat(b[0]);
または:
var c = [b[0]].concat(a.slice(1));
探している関数はarray.unshift()
で、配列の先頭に値 (または値) を追加します。
var fruits = [ "orange", "banana" ];
fruits.unshift("apple");
// Fruits is now ["apple", "orange", "banana"]
新しい配列を生成したい場合は、スライスの結果に対してこれを行うことができます:
var new_array = old_array2.slice(1);
new_array.unshift(old_array[0]);
しかし、このコードは最初の要素を置き換えるだけなので、次のように書くこともできます:
var new_array = old_array2.slice(0);
new_array[0] = old_array[0]; // I prefer this for readability
slice(1)
あなたの質問の文言と一致していないと思うので、あなたの質問の についてはわかりません。したがって、ここにさらに2つの答えがあります。
old_array2 と同じであるが、old_array の最初の値を先頭に持つ新しい配列を作成する場合は、次を使用します。
var new_array = old_array2.slice(0); // Note the slice(0)
new_array.unshift(old_array[0]);
old_array2 と同じであるが、最初の値を old_array の最初の値に置き換えた新しい配列を作成する場合は、次を使用します。
var new_array = old_array2.slice(0);
new_array[0] = old_array[0];
2 つのソース配列の明示的に定義された部分から単純に新しい 2 要素配列が必要な場合は、次のようにします。
new_array = [old_array[0], old_array2.slice(1).toString()];
参照: jsfiddle
(注: 受け取ったコメントごとに、最初に提示されたソリューションから修正された 2 番目の要素。)