2014-12-13 4 views
0

Есть ли способ инициализировать объект с нулевым способом, как вы можете инициализировать хэш в рубине с 0 значением?Инициализация объекта Javascript в ноль?

Hash.new (0) ... Object.create (0)?

Я пытаюсь повторить через массив и добавить каждый элемент в качестве ключа и увеличить значения.

ответ

0

No.

Но вы можете сделать что-то вроде

tab[key] = (tab[key] || 0) + 1; 

Имея значение по умолчанию будет немного лучше, но это не будет работать, если по умолчанию должно быть выражение, которое будет вычисляться только если необходимо.

С помощью этого шаблона вместо этого вы можете легко сделать такие вещи, как

return cache[key] || (cache[key] = new Machine(...)); 
2

Вы всегда можете создать Array со значением по умолчанию, используя apply и map:

var arrSize = 10; 
var arr = Array.apply(null, new Array(arrSize)).map(Number.prototype.valueOf,0); 
console.log(arr); // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 
0

, если вы пытаетесь создать пустой объект, который вы можете просто:

var obj = {}; 

Вот некоторые вещи, которые не просили, чтобы удержать downvotes

var obj = {}; 
['Lorem', 'ipsum', 'dolor', 'sit', 'amet,', 
'consectetur', 'adipisicing', 'elit.', 'Enim', 
'nam', 'aperiam,', 'doloribus', 'dolor', 'ullam', 
'corrupti', 'aliquid', 'Magni', 'consequuntur', 
'velit', 'consectetur', 'autem', 'sit', 'sint', 
'temporibus', 'inventore'].forEach(function(a, i) { 
    obj[a] = i; 
}); 
console.log(JSON.stringify(obj, null, 4)); 
+0

Я думаю, что вы пропустили * «и приращение значения» * часть в вопросе ... –

+0

Я думаю, вы пропустили расположение Questionmark. – Todd

+0

спасибо за downvote. – Todd