массивов Javascript не занимают ключевые пары значений, как объекты делают, поэтому длина не увеличивается при присвоении значения. Однако они являются объектами, поэтому вы можете присвоить значения его свойствам (в этом случае это свойство return
).
Вы, вероятно, хотите PARAMS быть простой объект: params = {}
Вы должны рассчитывать свойства, как это, например:
function dictionarySize(dict){
var size = 0;
for (key in dict){
// In practice you'd probably want to filter using hasOwnProperty
size++;
}
return size
}
alert(dictionarySize(params));
Или, используя библиотеку как underscore.js:
_.size(params);
Object.keys
также является вариантом, хотя он не будет работать в IE8 и старше.
Если не требуется ключевое значение пары используют params.push:
params=new Array();
params.push('json')
alert(params.length); // 1
только числовые индексы будут влиять на '.length' из Массив. Вы используете 'params', как если бы это был простой« объект », а объекты не имеют автоматической' .length'. Чтобы подсчитать их, вы можете сделать 'Object.keys (params) .length' – user2736012
Массивы не являются ассоциативными в JS ... – Krzysiek