为什么在JavaScript父变量中取得子变量的值?
问题描述:
请帮我解决下一个问题。为什么在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;
}
}
我究竟做错了什么?
答
可变a
是到阵列_b
,不是复制的引用,所以排空a
清空_b
太。
+0
谢谢,nrabinowitz。那么请告诉我如何复制。 – olysachok 2013-03-06 05:20:40
+0
有几种方法 - 我通常使用a = _b.slice() – nrabinowitz 2013-03-06 05:22:29
看起来像我混淆的代码。 – Marc 2013-03-06 05:16:00
'a'和'_b'指的是同一个对象。 – Blender 2013-03-06 05:16:30
如果目的是过滤'_b'中的项目,请查看['.grep()'](http://api.jquery.com/jQuery.grep/)。感谢乔纳森, – 2013-03-06 05:20:39