Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの配列に対する削除演算子の厄介な動作


JavaScriptの削除演算子は、実際にはオブジェクト演算子です(オブジェクトで使用されます)。

ただし、配列はJavaScriptのインデックス付きオブジェクトでもあるため、配列でも削除演算子を使用できます。

次のリテラルの配列を考えてみましょう-

const arr = ['a', 'b', 'c', 'd', 'e'];

次のプログラムを実行して、期待される出力を推測してみましょう-

const arr = ['a', 'b', 'c', 'd', 'e'];
delete arr[4];
console.log(arr);
console.log(arr.length);

出力

コンソールでのこのプログラムの出力は-

になります
[ 'a', 'b', 'c', 'd', <1 empty item> ]
5

出力を理解する-

配列の1つのインデックス値を削除したため、array.lengthは5ではなく4を出力すると予想しました。ただし、delete演算子は値をメモリ位置から削除するだけであり、その位置は依然として配列によって占有されています。

これによって配列の長さが変更されることはなく、配列内に5つの要素が表示されますが、現在は1つのメモリ位置が空になっています。


  1. JavaScriptの配列のスプレッド演算子

    Spread(…)構文を使用すると、0個以上の引数が期待される場所でiterablelike配列を展開できます。これにより、関数に配列としていくつかのパラメーターを渡すことができます。 以下は、JavaScriptで配列のスプレッド演算子を実装するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width

  2. JavaScriptで配列の配列をオブジェクトに変換する

    このようなクリケット選手のパフォーマンスを含む配列の配列があるとします- const arr = [    ['Name', 'V Kohli'],    ['Matches', 13],    ['Runs', 590],    ['Highest', 183],    ['NO', 3],    ['SR', 131.5] ]; このような配列の配列を1つ取り