Javascript 迭代JS对象并根据条件重写值
我试图将对象中的空值重写为零Javascript 迭代JS对象并根据条件重写值,javascript,object,Javascript,Object,我试图将对象中的空值重写为零 var data = { a : 1, b: 22, c: null, d: 1 }; for(var i=0; i < data.length; i++) { if (data[i].value === null){ data[i].value = 0; } } var数据={ 答:1,, b:22, c:空, d:1 }; 对于(变量i=0;i
var data = {
a : 1,
b: 22,
c: null,
d: 1
};
for(var i=0; i < data.length; i++) {
if (data[i].value === null){
data[i].value = 0;
}
}
var数据={
答:1,,
b:22,
c:空,
d:1
};
对于(变量i=0;i
我这里缺少什么?您使用了错误的循环,并将对象视为数组。使用
for…in
语句以任意顺序迭代对象的可枚举属性。对于每个不同的属性,都可以执行语句
var数据={
答:1,,
b:22,
c:空,
d:1
};
用于(数据中的var i){
if(数据[i]==null){
数据[i]=0;
}
}
console.log(data)
您使用了错误的循环,并将对象视为数组。使用
for…in
语句以任意顺序迭代对象的可枚举属性。对于每个不同的属性,都可以执行语句
var数据={
答:1,,
b:22,
c:空,
d:1
};
用于(数据中的var i){
if(数据[i]==null){
数据[i]=0;
}
}
console.log(data)
由于data
变量是一个对象,因此length
属性对其不起作用。您可以使用Array#reduce
和Object.keys
来获得所需的结果
var data={a:1,b:22,c:null,d:1};
数据=对象。键(数据)。减少(函数){
数据[a]==null?s[a]=0:s[a]=数据[a];
返回s;
}, {});
控制台日志(数据)
由于数据
变量是一个对象,因此长度
属性对其不起作用。您可以使用Array#reduce
和Object.keys
来获得所需的结果
var data={a:1,b:22,c:null,d:1};
数据=对象。键(数据)。减少(函数){
数据[a]==null?s[a]=0:s[a]=数据[a];
返回s;
}, {});
控制台日志(数据)代码>数据.length将未定义,因为没有长度属性。循环如下:data.length将是未定义的,因为没有length属性。循环如下: