我喜欢做递归脚本,如:
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中使用?
答案 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"]