我有一个对象数组
x = [{id:null},{id:null},{id:null},{id:null}];
假设数组的值发生了变化
x = [{id:1},{id:3},{id:8},{id:12}];
我想将值恢复为全为null,哪种方法的性能更快
A)再次重建阵列
x=[];
for (var i=0; i<5; i++) {
var obj = {};
obj.id = null;
x.push(obj);
}
B)重置值
for (var i in x) {
x.id = null;
}
答案 0 :(得分:0)
除非你有数以千计的元素,否则你永远不会注意到表现的差异。
然而,第二种解决方案比第一种解决方案更清晰。
或者,要说清楚x是一个数组:
for (var i = 0; i < x.length; ++i) {
x[i].id = null;
}
答案 1 :(得分:0)
您的B只会将属性id
添加到数组中,并将其值设置为“null”。最重要的是,您should not在数组上使用for in
。
最快的方式可能是:
var i = x.length;
while(i--){
x[i].id = null;
}
但除非您的数组有数千个元素,并且在您确定需要之前可能shouldn't even try to optimize表示性能,否则您不会看到差异。在大多数用例中,代码的可读性将比您可以获得的一些片段重要得多。