Javascript-数组弹出并获取数组的第一部分
我有一个路径,我试图弹出最后一个/之后的所有内容,因此在本例中为“folder”,将新路径保留为C://local/drive/folder/ 我试图弹出最后一个/使用pop(),但无法使路径的第一部分成为新路径:Javascript-数组弹出并获取数组的第一部分,javascript,arrays,split,Javascript,Arrays,Split,我有一个路径,我试图弹出最后一个/之后的所有内容,因此在本例中为“folder”,将新路径保留为C://local/drive/folder/ 我试图弹出最后一个/使用pop(),但无法使路径的第一部分成为新路径: var path = C://local/drive/folder/folder var newpath = path.split("/").pop(); var newpath = newpath[0]; //should be C://local/drive/folder/ 我
var path = C://local/drive/folder/folder
var newpath = path.split("/").pop();
var newpath = newpath[0]; //should be C://local/drive/folder/
我如何才能做到这一点?使用.slice()
而不是pop()
如果还需要最后一部分,则只需使用
.pop()
,但首先将数组存储在单独的变量中
var parts = path.split("/");
var last = parts.pop();
var first = parts.join("/");
现在,last
拥有最后一部分,first
拥有最后一部分之前的所有内容
另一种解决方案是对字符串使用
.lastIndexOf()
var idx = path.lastIndexOf("/");
var first = path.slice(0, idx);
var last = path.slice(idx + 1);
使用.slice()
而不是pop()
如果还需要最后一部分,则只需使用
.pop()
,但首先将数组存储在单独的变量中
var parts = path.split("/");
var last = parts.pop();
var first = parts.join("/");
现在,last
拥有最后一部分,first
拥有最后一部分之前的所有内容
另一种解决方案是对字符串使用
.lastIndexOf()
var idx = path.lastIndexOf("/");
var first = path.slice(0, idx);
var last = path.slice(idx + 1);
将导致:[“C://local/drive/folder/folder”,“C://local/drive/folder/”]
虽然我更喜欢用户1689607的答案
将导致:[“C://local/drive/folder/folder”,“C://local/drive/folder/”]
虽然我更希望用户1689607的答案也可以使用正则表达式:
function stripLastPiece(path) {
var matches = path.match(/^(.*\/)[^\/]+$/);
if (matches) {
return(matches[1]);
}
return(path);
}
工作示例:也可以使用正则表达式:
function stripLastPiece(path) {
var matches = path.match(/^(.*\/)[^\/]+$/);
if (matches) {
return(matches[1]);
}
return(path);
}
工作示例:将最后一条语句替换为:
var path = C://local/drive/folder/folder
path.split("/").pop(); // Discard the poped element.
var newpath = path.join("/"); // It will be C://local/drive/folder
关于
Array.pop
的说明:每次调用pop
方法时,它将返回最后一个元素,并将其从数组中删除。只需替换最后一条语句,如下所示:
var path = C://local/drive/folder/folder
path.split("/").pop(); // Discard the poped element.
var newpath = path.join("/"); // It will be C://local/drive/folder
关于
Array.pop
的说明:每次调用pop
方法时,它将返回最后一个元素,并将其从数组中删除。如果要获取数组的第一部分
var firstWord=fullnamesaved.split(“”.shift()
这将忽略空格后的所有内容。如果要获取数组的第一部分 var firstWord=fullnamesaved.split(“”.shift() 这忽略了空间之后的所有东西