22

次の2つのJavascriptステートメントが同じ結果を生成するかどうかを確認したいだけです。

初め:

var element = my_array.splice(0,1)[0];

2番:

var element = my_array.shift();

読みやすさを向上させるために、自分のコードで最初のコードを2番目のコードに置き換えたいと思います。これはできますか?

4

4 に答える 4

50

はい、同じ効果があります。splice(0, 1)から最初の要素を削除し、my_arrayその要素を含む新しい配列を返します。shift同じことを行いますが、配列ではなく要素自体を返します。

shift(私の意見では)より読みやすく、また大幅に高速です(少なくともChromeでは):

ここに画像の説明を入力

于 2012-05-24T17:28:12.623 に答える
6

コードの両方の行は、配列から最初の要素を削除し、削除された要素を返します。これらは両方とも、すべての主要なブラウザーでサポートされています。

2 番目のものを使用すると、コードがより読みやすくなります。

于 2012-05-24T17:28:11.303 に答える
2

shiftは削除された要素を返し、spliceは削除された要素の配列を返します。

そうは言っても、2 つのステートメントは同じことを行い、2 番目のステートメントの方が読みやすいことに同意します。

于 2012-05-24T17:28:20.877 に答える