扫码关注官方订阅号
这个代码没问题,但是我把fun(a)改了,a[0或1或2]就出错了为什么呢?如果我只想把这个数组的一部分作为参数呢?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
fun(a.slice(0,1)); //0, 1为数组索引或者传入数组,在里面slice
建议用一楼的方法,用slice是不会改变原数组的,只要在数组中找到你需要的元素,用slice取出子集作为参数
方法要求的参数是个数组,你必须得传进去一个数组。想要传进去一部分也要把那部分包装成数组。a[1]可能不是数组,所以不行。但是如果[a[1]]就可以了。要不就像楼上那种写法,截取数组。
@王小强 的方法不错,也可以考虑下面这种方式:
function fun(a) { if(Array.isArray(a)) { a.map(function(i) { alert(i); }); }else { alert(a); } }
参数本身是不限制你传什么类型的,至于你的代码会出错,那是因为函数体内部的代码的问题。
比如你传了 a[0] ,也就相当于传了一个 1
那这时候来看后面要执行的代码,一个for循环,循环结束条件是 i < 1.length ,
你觉得这里会不会出错?
如果你又想传数组,又想可以传数组的元素,那你的代码就要改,比如多加一层判断,判断参数类型。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
fun(a.slice(0,1)); //0, 1为数组索引
或者传入数组,在里面slice
建议用一楼的方法,用slice是不会改变原数组的,只要在数组中找到你需要的元素,用slice取出子集作为参数
方法要求的参数是个数组,你必须得传进去一个数组。想要传进去一部分也要把那部分包装成数组。a[1]可能不是数组,所以不行。但是如果[a[1]]就可以了。要不就像楼上那种写法,截取数组。
@王小强 的方法不错,也可以考虑下面这种方式:
参数本身是不限制你传什么类型的,至于你的代码会出错,那是因为函数体内部的代码的问题。
比如你传了 a[0] ,也就相当于传了一个 1
那这时候来看后面要执行的代码,一个for循环,循环结束条件是 i < 1.length ,
你觉得这里会不会出错?
如果你又想传数组,又想可以传数组的元素,那你的代码就要改,比如多加一层判断,判断参数类型。