js数组赋值ar = ar.push(y)为什么是错的?
一开始我是这么写的:
function aryPush(){
var y = 'y';
var ar = ['x'];
if (y){
ar.push(y);
}
alert(ar); //[x,y]
}
没问题,输出正是我要的结果。
但是我嫌用if写在3行不够简洁,于是改为下面的:
function aryPush(){
//var y = 'y';
var ar = ['x'];
ar = y ? ar.push(y) : ar;
//ar = ar.push(y);
alert(ar); //2
}
无论我是否定义y,结果都是输入2。实在想不明白。
js入门菜鸟,请勿见笑,请不吝赐教!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
push方法
不返回原数组,所以你把它的返回值赋值给ar
是不对的。也就是说,你想往数组后面添加数据,直接调用push
就好了,没必要再赋值。array.push
返回的是新的数组长度,所以是2
。未定义
y
的话会出错的,一定是y
在哪里定义了。