关于js中数组操作方法spilce的问题?
var a=[{x:1,y:1},{x:2,y:2},{x:3,y:3},{x:4,y:4}];
var b=[];
b.push(a.splice(1,1));
alert(b[0].x);
为什么弹出来的会是undefined?splice不是会返回被删除的元素吗?而我又把他push到b数组里面去了,可为什么b[0].x会是undefined?而当a数组的元素是数字时就不会报错.....比如下面的语句就能正常弹出2;
var a=[1,2,3,{x:4,y:4}];
var b=[];
b.push(a.splice(1,1));
alert(b[0]);//会弹出2
splice返回被删除的元素的数组, 返空竖回值迟亏游是array。
var a=[{x:1,y:1},{x:2,y:2},{x:3,y:3},{x:4,y:4}];
var b=[];
b.push(a.splice(1,1));
alert(b[0][0].x); //返回值是array,所以还要加一个key。
------------------------------------------------------------------
var a=[1,2,3,{x:4,y:4}];
var b=[];
b.push(a.splice(1,1));
alert(b[0]);//会弹出2
以上语句实际执行等效于以下:
alert([2]);
alert(b[0][0]);//也会弹码销出2
a.splice(1,1)返回的数闹数芹组,不用push了
b=a.splice(1,1)
alert(b[0]);//会液毕弹出2,这里出来2是因为alert的时候array会toString,也就是数组里面的元素字符毕衡串显示,逗号分隔。所以弹出了2