var flatten = function(input,shallow,strict,startIndex){ var output = [], idx =0; for(var i = startIndex || 0,length =input && input.length;i < length;i++){ var value = input[i]; if(isArrayLike(value) &&(_.isArray(value) ||_.isArguments(value))){ if(!shallow) value = flatten(value,shallow,strict);//这里的value递归不是很懂,具体细节是怎样的?麻烦大神讲解一下 var j = 0, len = value.length; output.length += len; while(j<len){ output[idx++] = value[j++]; } }else if(!strict){ output[idx++] = value; } } return output;};
1 回答
HUWWW
TA贡献1874条经验 获得超12个赞
if(isArrayLike(value) //注意这一句
到最后一层已经不是数组了,不会进这个if,会走到下面这里
else if(!strict){ output[idx++] = value; }
因此你的担心不存在
添加回答
举报
0/150
提交
取消