2 回答
TA贡献1786条经验 获得超11个赞
<script type="text/javascript">
var arr=['a','b','c','d','e','f','g'];
arr.concat(['x','y']);
alert(arr.concat(['x','y']));
alert(typeof(arr.concat(['x','y'])));
document.writeln(arr);
document.write(arr.concat('x','y'));
</script>
<script type="text/javascript">
var arr=['a','b','c','d','e','f','g'];
arr.unshift('0');
alert(arr);
alert(typeof(arr.unshift('0')));
document.writeln(arr);
document.writeln(arr.unshift('0'));
</script>
我自己做了实验,总结出你自己没有好好区分数组和数组.方法()。第一个concat,也不需要对hellow从新赋值,你要么直接输出arr.concat('x','y').要么重新定义一个数组来存放结果。
第二个arr是数组,arr.unshift('0')是数组方法返回的是个number。
TA贡献1863条经验 获得超2个赞
var hello=['a','b','c','d','e','f','g'];
> undefined
hello.concat(['x','y']);
> ["a", "b", "c", "d", "e", "f", "g", "x", "y"]
hello
> ["a", "b", "c", "d", "e", "f", "g"]
综上:concat 是连接之后的新的数组,但是不会修改原始数组,
原始数组不发生变化。这个是我在浏览器控制台打印的信息,和你的表述不同
unshift返回的是被修改后的数组的长度,所以是8
添加回答
举报