我想用相同的值更新所有对象子值,让我们按代码执行:
var days = [
{
title: 'Day 1',
checked: false
},
{
title: 'Day 2',
checked: true
},
{
title: 'Day 3',
checked: false
}
];
现在,如果我想更新所有日期数组节点的属性checked
,我会这样做:
$.each(days, function(i, day) {
day[i].checked = true;
});
所以,我正在寻找更好的方法来做到这一点,如下:
days[*].checked = true;
提前致谢。
答案 0 :(得分:4)
正如我已经在问题下面提到了评论! $.each( ... )
表现非常昂贵。虽然它只能在阵列中的大量数据中检测到!
根据This Article: 这Question ......
最轻巧且易于使用的方式是 while loop :
var len = arr.length;
while (len--) {
arr[len] *= 2;
}
然后另一个更好的和更强调的是 do-while循环:
var len = arr.length;
do {
arr[len] *= 2;
} while (len--);
最不可取的是阵列地图:
arr.map(function(el) {
return el * 2;
});
还有很多其他方法可以循环遍历数组,并且比上面几种方法都要昂贵。
编辑后:
$.each()
循环的缺点:
jQuery
库的依赖关系不同于,等等,循环!