用于循环闭包问题的JavaScript

时间:2015-04-27 19:03:11

标签: javascript closures

如果所有类别在 private void btn1234_Click() { var items = ListBox1.SelectedItems.Cast<string>(); backgroundWorker1.RunWorkerAsync(items); } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { var worker = (BackgroundWorker)sender; var items = (IEnumerable<string>)e.Argument; //Long Running Process taking place here then we hit this if (items.Contains("Firefly")) { /* take this course */ } if (items.Contains("Hellfire")) { /* take this course */ } } 的选定类别中存在,则会在将所有类别添加为真后添加,但它会将之前的类别结果与当前类别结合起来。我尝试过关闭,但它并没有给我新鲜的东西。 结帐fiddle

result

上面的代码为每个结果中的所有类别提供了ticked = true的组合结果。

1 个答案:

答案 0 :(得分:1)

您需要复制/克隆对象数组,或者您正在操作原始对象。显然有几种方法。我选择了以下内容:

var tmp = JSON.parse(JSON.stringify(allCatsResult));

这将在tmp中创建一个新的对象数组,它将正确地修改克隆。