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つのメモリ位置が空になっています。
-
JavaScriptの配列のスプレッド演算子
Spread(…)構文を使用すると、0個以上の引数が期待される場所でiterablelike配列を展開できます。これにより、関数に配列としていくつかのパラメーターを渡すことができます。 以下は、JavaScriptで配列のスプレッド演算子を実装するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width
-
JavaScriptで配列の配列をオブジェクトに変換する
このようなクリケット選手のパフォーマンスを含む配列の配列があるとします- const arr = [ ['Name', 'V Kohli'], ['Matches', 13], ['Runs', 590], ['Highest', 183], ['NO', 3], ['SR', 131.5] ]; このような配列の配列を1つ取り