Files
rspade_system/node_modules/collect.js/src/methods/last.js
2025-12-03 21:28:08 +00:00

27 lines
536 B
JavaScript
Executable File

'use strict';
const { isFunction } = require('../helpers/is');
module.exports = function last(fn, defaultValue) {
let { items } = this;
if (isFunction(fn)) {
items = this.filter(fn).all();
}
if ((Array.isArray(items) && !items.length) || (!Object.keys(items).length)) {
if (isFunction(defaultValue)) {
return defaultValue();
}
return defaultValue;
}
if (Array.isArray(items)) {
return items[items.length - 1];
}
const keys = Object.keys(items);
return items[keys[keys.length - 1]];
};