<script>
var arr=['sky','wind','snow','sun'];
arr.splice(2,2);//从数组下标2的位置开始,删掉两个元素
console.log(arr);
arr.splice(1,1,'snow');//从数组下标1的位置开始,删除1个元素后,再添加snow元素
console.log(arr);
arr.splice(4,0,'hail','sun');//指定下标4大于数组的长度,则直接在数组末尾添加hail和sun元素
console.log(arr);
arr.splice(3,0,['lala','yaya'],null,undefined,[]);//从数组下标3的位置开始,添加数组、null、undefined和空数组
console.log(arr);
</script>
为什么前三个splice不执行,结果都是最后一个splice方法的结果
数组是对象,对象打印到控制台,展开后得到是当前对象的值
。
要看当时的值,可以用JSON.stringify
转为普通类型字符串就可以看到内容了,如下
<script>
var arr = ['sky', 'wind', 'snow', 'sun'];
arr.splice(2, 2);//从数组下标2的位置开始,删掉两个元素
console.log(JSON.stringify(arr));
arr.splice(1, 1, 'snow');//从数组下标1的位置开始,删除1个元素后,再添加snow元素
console.log(JSON.stringify(arr));
arr.splice(4, 0, 'hail', 'sun');//指定下标4大于数组的长度,则直接在数组末尾添加hail和sun元素
console.log(JSON.stringify(arr));
arr.splice(3, 0, ['lala', 'yaya'], null, undefined, []);//从数组下标3的位置开始,添加数组、null、undefined和空数组
console.log(JSON.stringify(arr));
</script>
因为js的数组是引用数据类型,你再console的时候,把arr,json转一下就能得到你想要的结果了