Действительно ли массивы действительно "разбиты" в JavaScript по умолчанию?
Как удалить отдельный элемент массива без смещения индекса?
В чем разница между:
var a = new Array(10);
var b = new Array(2);
занимают ли эти массивы различное пространство в памяти?Могу ли я превратить Array(2)
в Array(10)
и обратно?
ОБНОВЛЕНИЕ 1
Следующий код
<body>
<script type="text/javascript">
var a = new Array(10);
var b = new Array(2);
document.write('a[5] is ' + a[5] + '<br/>');
document.write('a[15] is ' + a[15] + '<br/>');
document.write('a.length is ' + a.length + '<br/>');
document.write('b[5] is ' + b[5] + '<br/>');
document.write('b[15] is ' + b[15] + '<br/>');
document.write('b.length is ' + b.length + '<br/>');
b[9]=12;
delete b[9];
document.write('After resize...<br/>');
document.write('b[5] is ' + b[5] + '<br/>');
document.write('b[15] is ' + b[15] + '<br/>');
document.write('b.length is ' + b.length + '<br/>');
</script>
</body>
вернет
a[5] is undefined
a[15] is undefined
a.length is 10
b[5] is undefined
b[15] is undefined
b.length is 2
After resize...
b[5] is undefined
b[15] is undefined
b.length is 10
Итак, я сделал b
, обладающие теми же свойствами, что и a
.Могу ли я сделать это без присвоения фальшивого значения b[9]
?Могу ли я сделать реверс, то есть, если a.length
равен 2?