1

で構成される new_array を作成しようとしていますold_array[0] + old_array2.slice(1)

から3番目の一時配列を作成しない限り、ここでconcatがどのように役立つかわかりませんold_array[0]

それが唯一の方法ですか?

4

3 に答える 3

1
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));
于 2013-08-25T01:34:44.783 に答える
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]; 
    
于 2013-08-25T01:37:38.813 に答える
0

2 つのソース配列の明示的に定義された部分から単純に新しい 2 要素配列が必要な場合は、次のようにします。

new_array = [old_array[0], old_array2.slice(1).toString()];

参照: jsfiddle

(注: 受け取ったコメントごとに、最初に提示されたソリューションから修正された 2 番目の要素。)

于 2013-08-25T01:45:11.443 に答える