JS: Sparse Array
What is a sparse array?
When a array's numerical property key does not exist for index in the range from 0 to n-1 (where n is the value of the property
〔►see JS: Array.prototype.length〕
What is the value of missing elements in a sparse array?
It doesn't exist, therefore has no value.
If you access it (For example,
myarray where property key
"3" doesn't exist), it has a value of
undefined, just like accesing a non-existent property of a object.
Remember, array indexes are property keys of "0" and positive integer, all are string type.
〔►see JS: Property Key〕
What is the effect of sparse array?
When array is sufficiently sparse (missing lots indexes), it loses its special efficiency when accessing array by indexes. In performance, it effectively is like a hashtable.
How to create a sparse array?
In general, you should never use sparse array. Just use a normal object if necessary.
Array can become sparse in a number of ways.
- Array becomes sparse when you use
deleteoperator to delete a element. 〔►see JS: Delete operator〕
- Array becomes sparse when you set array property
lengthto a number bigger than the index of last item.
- Array becomes sparse when a new element is added with index greater than 1 from the last item's index. For example:
var aa=["a","b"]; aa="z";
- Sparse array is created when you call
new Array(n), where n is a positive integer.
Do not do any of the above. To add or remove elements, use array methods. 〔►see JS: Array.prototype〕
What is the use of sparse array?
Generally, there's no use. It has some use if you are doing sparse matrix in math. (matrix as array of array) That is, a huge matrix with most elements being 0. Using spare array saves storage space. (but in this case, you can use object too.)
If you are doing math of sparse matrix, you should use a dedicated library instead.
Example of Sparse Array
// delete operator results a sparse array // using delete to remove last item var rr = ["a", "b"]; delete rr; console.log(rr.length); // 2 console.log(rr); // [ 'a', ]
// Example of a sparse array, by adding a item with index greater than 1 than the last item's index. var cc = ; cc = "b"; // now cc is sparse array console.log(cc); // [ , , 'b' ] console.log(cc); // undefined console.log(cc); // undefined console.log(cc); // b console.log(cc.length); // 3
- JS: Array Basics
- JS: Understand JS Array
- JS: Create Array
- JS: Sparse Array
- JS: Array-Like Object
- JS: Array How-To