javascript splice()奇函数

时间:2013-01-02 22:15:00

标签: javascript splice

我喜欢做递归脚本,如:

var slask="http://www.vskg.se/a-konstnarer/kn_1180/t_bild1.jpg?1357162516228";
slask.split("/").splice(3,50).join("/");

删除http://www.vskg.se/并返回:

/a-konstnarer/kn_1180/t_bild1.jpg?1357162516228

我想要的! 为什么这很奇怪? 因为splice()应该是 删除3到50之间的所有项目, 但它的作用是什么 将所有项目从3返回到50。 这是正常的,还是只在OSX中的Opera,Safari和Chrome中使用?

2 个答案:

答案 0 :(得分:4)

splice删除原始数组中的项目并返回它们。

如果您在运行此代码后查看slask,您会看到它是“已删除”部分。

实际上,您实际上是从URL中删除路径并将其返回。

非破坏性替代方案是slice

另请注意,第二个参数是可选的。您不必将其设置为较高的数字。

slask.split("/").slice(3).join("/");

答案 1 :(得分:1)

splice既删除又添加项目到数组:

var leftovers = array.splice(index,howmany,item1,.....,itemX)

其中index是起点 howmany是要删除的号码(如果有) 在给定index

注入的剩余参数

array现在是添加剩余参数中的任何项目减去howmany指定的项目删除的结果。 如果howmany大于零,则leftovers是通过拼接取出的项目。

所以:

var arr = ["one","two","three"];
var removed = arr.splice(1,1,"green");

removed >> ["two"] 
arr >> ["one","green","three"]