0

Can somebody explain this behaviour in javascript the loop does not run 3 time but its length is showing 3

let temp = ["a", "b", "c"]
console.log(temp.length)
temp.forEach((e, i)=>console. log(e, i))
delete temp [0]
console.log(temp)
console.log(temp.length)
temp.forEach((e,i)=>console. log(e, i))

Deleting element from array cause empty position but not loopable

Pratik Mohite
  • 95
  • 1
  • 8
  • https://stackoverflow.com/a/27433206/2442804 – luk2302 Jun 01 '23 at 06:12
  • "callbackFn is invoked only for array indexes which have assigned values. It is not invoked for empty slots in sparse arrays." [reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#:~:text=callbackFn%20is%20invoked%20only%20for%20array%20indexes%20which%20have%20assigned%20values.%20It%20is%20not%20invoked%20for%20empty%20slots%20in%20sparse%20arrays.). You can read more about [sparse array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Indexed_collections#sparse_arrays) – Ricky Mo Jun 01 '23 at 06:12
  • 1
    This exact behavior is described in the [`delete` operator docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete#deleting_array_elements) – JSON Derulo Jun 01 '23 at 06:15

0 Answers0