帮我看看js数组的问题

如图,我上面这个分开写是正常的,但下面链式写就不行了,是什么原因呢?谢谢
clipboard.png

阅读 2.3k
5 个回答

splice定义是:

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。 注释:该方法会改变原始数组。

所以你分开写的 和 注解的 是两种不同的结果。。。

var array = [1,2,3,4];
console.log(array.splice(0,3)) // [1,2,3]
console.log(array) // [4]

Array.splice()返回的是被删除的数据的数组,不是修改后的数组
MDN

Array.prototype.splice()

Return value

An array containing the deleted elements. If only one element is removed, an array of one element >is returned. If no elements are removed, an empty array is returned.

splice方法的返回值是被删除的成员,而不是原数组。
也就是,你的链式写法中,join是得到的是那三个项目,而不是otmp数组。

splice()方法返回一个新的数组!

divs[2].innerHTML = otmp.slice(3,otmp.length).join();

这样就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题