Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-数组弹出并获取数组的第一部分_Javascript_Arrays_Split - Fatal编程技术网

Javascript-数组弹出并获取数组的第一部分

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/ 我

我有一个路径,我试图弹出最后一个/之后的所有内容,因此在本例中为“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/
我如何才能做到这一点?

使用
.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()

这忽略了空间之后的所有东西