2013-03-06 98 views
0

请帮我解决下一个问题。为什么在JavaScript父变量中取得子变量的值?

var a = _b; //_b and _c is arguments. _b is array of objects (length = 1), _c is integer value 
if (a.length != 0) 
{ 
    $.each(a,function(k,v){ 
    if (v.c!= _c) 
     a.splice(k,1);//here a becomes empty, but _b becomes empty too. i don't know why. 
    }); 
    if (a.length != 0){ 
     _b = a; 
    } 
} 

我究竟做错了什么?

+0

看起来像我混淆的代码。 – Marc 2013-03-06 05:16:00

+0

'a'和'_b'指的是同一个对象。 – Blender 2013-03-06 05:16:30

+0

如果目的是过滤'_b'中的项目,请查看['.grep()'](http://api.jquery.com/jQuery.grep/)。感谢乔纳森, – 2013-03-06 05:20:39

回答

3

可变a是到阵列_b,不是复制的引用,所以排空a清空_b太。

+0

谢谢,nrabinowitz。那么请告诉我如何复制。 – olysachok 2013-03-06 05:20:40

+0

有几种方法 - 我通常使用a = _b.slice() – nrabinowitz 2013-03-06 05:22:29