我需要啓動一個對象,如下所示。是否有更簡單的方法來初始化它並定期重置它以使所有值都爲0,或者僅僅是使用for循環的情況?如何定義/重置所有對象項目爲零
var vote_tally = {};
vote_tally[1]=0;
vote_tally[2]=0;
vote_tally[3]=0;
vote_tally[4]=0;
任何幫助表示讚賞。
我需要啓動一個對象,如下所示。是否有更簡單的方法來初始化它並定期重置它以使所有值都爲0,或者僅僅是使用for循環的情況?如何定義/重置所有對象項目爲零
var vote_tally = {};
vote_tally[1]=0;
vote_tally[2]=0;
vote_tally[3]=0;
vote_tally[4]=0;
任何幫助表示讚賞。
您可以通過提供構造函數並添加到其原型來完成此操作。
function MyObject(value) {
value = value || 0;
this[1] = value;
this[2] = value;
this[3] = value;
this[4] = value;
}
MyObject.prototype.reset = function (value) {
value = value || 0;
for (var key in this) {
if (this.hasOwnProperty(key)) {
this[key] = value;
}
}
};
var o = new MyObject();
o['1'] = 42;
o.reset();
console.log();
// {1:0,2:0,3:0}
如果你想任意長度的數組並初始化所有數值爲0。我們可以做到這一點。
function initArray(size, value) {
value = value || 0;
return Array.apply(0, Array(size)).map(function() {return value;});
}
var a = initArray(10);
console.log(a);
// [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
var b = initArray(10, 1);
console.log(b);
// [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
如果你想重置數組的所有值,可以這樣做。然而,修改JavaScript內置原型並不是一個好習慣。
Array.prototype._reset = function (value) {
value = value || 0;
for (var i = 0; i < this.length; i += 1) {
this[i] = value;
}
};
b._reset();
console.log(b);
// [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
可以實例像這樣的數組:
var array = [0, 0, 0];
對象:
var object = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
要清空它,你可以只寫:array = []
但請解釋這是什麼你試圖去做,因爲你可能會從錯誤的角度來處理這個問題。
看起來你可能想在這裏使用一個數組而不是對象... – tkone 2014-12-07 22:21:38
但是,你可以循環。 Object.forEach或甚至簡單的for循環都可以做到這一點。 – tkone 2014-12-07 22:22:06
我從2009年開始使用Javascript進行編程,而且我從來沒有見過任何方式沒有循環... – 2014-12-07 22:22:31