结果保存在javascript数组中
如果我在javascript中搜索一个对象数组,为什么前面的结果仍然在内存中?我得到了以下代码:结果保存在javascript数组中,javascript,Javascript,如果我在javascript中搜索一个对象数组,为什么前面的结果仍然在内存中?我得到了以下代码: function findTasks( date ) { var result = $.grep( tasks[current].tasks, function( task ) { return task.date == date; }); return result; } 启动此方法并将其分配给变量时: var result = findTasks('24-
function findTasks( date ) {
var result = $.grep( tasks[current].tasks, function( task ) {
return task.date == date;
});
return result;
}
启动此方法并将其分配给变量时:
var result = findTasks('24-12-2012');
// The hardcoded date is for demonstration (it is dynamic in my application)
console.log( result );
然后,每次执行findTasks()
方法时,都会保留上一次搜索的结果。即使我做了以下事情:
function findTasks( date ) {
var result = null; // Notice this line
var result = $.grep( tasks[current].tasks, function( task ) {
return task.date == date;
});
return result;
}
结果也得以维持
编辑:
每次激发findTasks()方法时,都必须返回最新的结果。而不是返回以前的方法调用。您能详细说明一下吗?你的“问题”不是很清楚,你想让你的垃圾收集器早点启动吗?请记住,GC不需要在对象可供收集时立即释放对象。您能否在数组
tasks[current].tasks
中发布值以及调用findTasks()
时使用的不同输入?您能否提供一个演示来显示您的问题?var result=null代码>几乎不起作用,因为当输入功能范围时,结果
是未定义的
。还要注意结果的意外重新声明
。这也不会影响以前任何函数调用的结果。