1.为什么这个j里面赋值是无限嵌套。想不明白,希望大家帮我一下。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var a = [1, 2, 3, 4, 5, [1, 2, 3, 4]];
var j = [];
function copyarr(obj) {
var n = obj instanceof Array;
for(var i = 0; i < obj.length; i++) {
if(typeof obj[i] == 'object') {
j[i]=copyarr(obj[i]);
} else {
j[i] = obj[i];
}
}
return j;
}
copyarr(a);
console.log(j)
</script>
</body>
</html>
因为你的
j
是全局变量因为
copyarr方法return j;
所以
j[i]=copyarr(obj[i]);
相当于
j[i]=j;
而
j
是全局的,所以j[i]
包含了j
之前的数据所以把
改为