lau*_*kok 41 javascript arrays jquery
如何获取数组中的最后一项?
例如,
var fragment = '/news/article-1/'
var array_fragment = fragment.split('/');
var pg_url = $(array_fragment).last()[0];
Run Code Online (Sandbox Code Playgroud)
这将返回一个空值.但我想得到article-1
谢谢.
Pab*_*dez 72
并非所有事情都必须使用jQuery完成.
在普通的旧JavaScript中你可以做到:
var pg_url = array_fragment[array_fragment.length - 2]
Run Code Online (Sandbox Code Playgroud)
更轻松,更快捷:)
JJ *_*wax 48
看起来你也可以使用Javascript的slice
方法:
> path = 'a/b/c/d';
> path.split('/').slice(-2, -1)[0];
'c'
Run Code Online (Sandbox Code Playgroud)
您还可以将"数组中的倒数第二个元素"视为"数组的第二个元素反转":
> path = 'a/b/c/d';
> path.split('/').reverse()[1];
'c'
Run Code Online (Sandbox Code Playgroud)
t_d*_*m93 36
arr.at(-2);
将执行精确操作 - 它返回数组中的最后第二项。
const arr = [1,2,3,4];
arr.at(-2); // Returns 3
Run Code Online (Sandbox Code Playgroud)
该at()
方法采用正整数或负整数并返回该索引处的项目。负整数从数组中的最后一项开始倒数。
浏览器完全支持它。
文档:数组/at
151*_*291 12
第1步:使用split()方法将元素拆分为数组.
var fragment_arr = fragment.split("/");
Run Code Online (Sandbox Code Playgroud)
步骤2:使用slice(-2)方法从数组中选择最后2个元素,从数组末尾选择负数.
var lastTwo = fragment_arr.slice(-2);
Run Code Online (Sandbox Code Playgroud)
第3步:lastTwo
数组包含最后两个元素fragment_arr
,现在你可以这样访问了
var element = lastTwo[0];
alert(element);
Run Code Online (Sandbox Code Playgroud)
简短回答:您可以将下面的步骤2和3结合起来
var element = fragment_arr.slice(-2)[0];
alert(element);
Run Code Online (Sandbox Code Playgroud)
这可以被 lodash 覆盖_.nth
:
var fragment = '/news/article-1/'
var array_fragment = _.split(fragment, '/');
var second_last = _.nth(array_fragment, -2);
console.log(second_last);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>
Run Code Online (Sandbox Code Playgroud)