У меня есть список фильтров, которые будут применяться к набору данных, используя простой цикл key:value
. Когда пользователь выбирает фильтр, создается новый объект с этими key:value
парами. Однако, если есть 4 фильтра, и пользователь выбрал только 1-й и 3-й элементы фильтра, новый объект, который создается структурирована следующим образом:Javascript Object.length на основе ключа последнего объекта
var newObject = {
0: {
key: value,
},
2: {
key: value,
}
}
Когда я звоню newObject.length
, он возвращает 3
. Смотрите следующее из Devtools Chrome:
Object.length
, кажется, основан от последнего ключа в объекте, а не количество самих объектов. Как я могу получить newObject.length
, чтобы вернуть 2 вместо 3?
Вот моя функция, которая создает объект, основанный на фильтрах:
selectedInModel: function() {
var selected = [];
var getInputs = inputService.primaryInputs; // returns filter object
for (var key in getInputs) {
if (getInputs[key]["value"]) {
selected[key] = {
"value": getInputs[key]["value"],
"id": getInputs[key]["id"]
};
}
}
return selected;
};
Как я могу получить Object.length
вернуть число объектов в моем объекте?
Объект-примечание по умолчанию не имеет свойства 'length'. Массивы. – Oriol