Я немного потерял со следующим:JavaScript длина массива вопрос
Когда я делаю console.log двух различных массивов, один дает мне фактическую длину, но не другой.
Выход первого массива, с хорошей длиной:
[Object, Object, Object]
0: Object
1: Object
2: Object
length: 3
__proto__: Array[0]
Вывод второй, длина должна быть 4, но на самом деле 0:
[A: Object, B: Object, C: Object, D: Object]
A: Object
B: Object
C: Object
D: Object
length: 0
__proto__: Array[0]
Почему мой первый массив действительно есть правильная длина, но не вторая?
Edit: это код генерации выше вывод:
var links = [
{source: "A", target: "B"},
{source: "A", target: "C"},
{source: "A", target: "D"}
];
var nodes = [];
// Compute the distinct nodes from the links.
links.forEach(function(link) {
link.source = nodes[link.source] || (nodes[link.source] = {name: link.source});
link.target = nodes[link.target] || (nodes[link.target] = {name: link.target});
});
console.log(links);
console.log(nodes);
У вас есть образец кода, который воспроизводит это? –
Второй объект - это объект, массив не может содержать символы как индексы, только объекты могут – adeneo
Это может помочь: [Длина массива объектов JavaScript] (http://stackoverflow.com/questions/5223/length-of- javascript-object-ie-associative-array? rq = 1) – PattaFeuFeu