Nik*_*arg 124 javascript
JavaScript Array类没有提供检索数组最后一个元素的最后一个方法,这有点奇怪.我知道解决方案很简单(Ar [Ar.length-1]),但是,这种情况经常被使用.
任何严重的原因,为什么没有纳入呢?
Álv*_*lez 264
你可以这样做:
[10, 20, 30, 40].slice(-1)[0]
Run Code Online (Sandbox Code Playgroud)
console.log([10, 20, 30, 40].slice(-1)[0])Run Code Online (Sandbox Code Playgroud)
可以添加到语言的辅助方法的数量是无限的.我想他们只是没有考虑添加这个.
Anu*_*rag 82
你自己很容易定义一个.这就是JavaScript的强大功能.
if(!Array.prototype.last) {
Array.prototype.last = function() {
return this[this.length - 1];
}
}
var arr = [1, 2, 5];
arr.last(); // 5
Run Code Online (Sandbox Code Playgroud)
但是,这可能会导致第三方代码出现问题,这些代码(错误地)使用for..in循环来迭代数组.
但是,如果您不受浏览器支持问题的约束,那么使用新的ES5语法来定义属性可以通过使函数不可枚举来解决该问题,如下所示:
Object.defineProperty(Array.prototype, 'last', {
enumerable: false,
configurable: true,
get: function() {
return this[this.length - 1];
},
set: undefined
});
var arr = [1, 2, 5];
arr.last; // 5
Run Code Online (Sandbox Code Playgroud)
Tri*_*ych 38
因为Javascript变化非常慢.那是因为人们慢慢升级浏览器.
许多Javascript库实现了自己的last()功能.用一个!
Sil*_*ian 26
i = [].concat(loves).pop(); //corn
图标猫喜欢爆米花
Pab*_*iaz 13
另一种选择,特别是如果你已经在使用UnderscoreJS,将是:
_.last([1, 2, 3, 4]); // Will return 4
Run Code Online (Sandbox Code Playgroud)
Array.prototype.last = Array.prototype.last || function() {
var l = this.length;
return this[l-1];
}
x = [1,2];
alert( x.last() )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101486 次 |
| 最近记录: |