Это то, что вы видите, когда у вас есть разреженный массив - с некоторыми определенными признаками, но некоторые показатели ниже, чем определенные знаки , не определенные (или когда-либо назначенные), для пример:
const arr = [];
arr[65] = 'foo';
console.log(arr);
(посмотрите на результаты этих двух фрагментов в консоли браузера, консоль фрагмента не будет видна )
Обратите внимание, что это отличается от наличия буквальных значений undefined
в первых 65 знаках, которые будут показаны как undefined
, а не empty
:
const arr = new Array(65).fill(undefined);
arr[65] = 'foo';
console.log(arr);
Разреженные массивы почти никогда не являются хорошей идеей, хотя - если вы когда-либо увидите это, это признак того, что вам, вероятно, следует исправить код, чтобы избежать разреженных массивов. Вместо этого рассмотрим другую структуру, возможно, объект с числовыми ключами:
const obj = {
'65': 'foo'
};
Программист будет ожидать, что массив будет упорядоченной коллекцией элементов - что бы это значило для коллекции вообще не иметь никакого значения вершина упорядоченной коллекции (не только undefined
, но не любое значение)? Это просто не имеет особого смысла - хотя возможно , такие конструкции - не то, для чего предназначены массивы.
Как отмечает Кайидо, пустые элементы не будут повторяться с помощью методов массива, таких как forEach
:
const arr = [];
arr[65] = 'foo';
arr.forEach((item, i) => {
console.log(item, i);
});
имеет смысл, но все же не интуитивно понятно (вы были бы уверены в этом, не пытаясь самостоятельно выполнить код или поискать спецификацию?). Обычно можно ожидать, что первая итерация обратного вызова forEach
будет иметь индекс 0.
Const CommonAppData = &H23& ' the second & denotes a long integer '
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(CommonAppData)
Set objFolderItem = objFolder.Self
MsgBox objFolderItem.Name & ": " & objFolderItem.Path
MSDN содержит страницу, которая перечисляет другой Shell Специальные Константы Папки.
Эта страница хороша, также: Перечисляя Специальные Папки, часть Руководства по созданию сценариев Microsoft Windows 2000. (Ссылка является ныне несуществующей, но интернет-Архив все еще имеет копию.)