我需要启动一个像我在下面的对象。是否有更简单的方法来初始化它并定期重置它以使所有值都为0,或者只是使用for循环的情况?
var vote_tally = {};
vote_tally[1]=0;
vote_tally[2]=0;
vote_tally[3]=0;
vote_tally[4]=0;
任何帮助表示感谢。
答案 0 :(得分:1)
您可以通过提供构造函数并添加到其原型来实现此目的。
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]
答案 1 :(得分:-1)
您可以像这样实例化一个数组:
var array = [0, 0, 0];
对象:
var object = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
要清空它,您只需写下:array = []
但请解释一下你正在尝试做什么,因为你可能从错误的角度接近这个。