70 lines
1.2 KiB
JavaScript
70 lines
1.2 KiB
JavaScript
/**
|
|
* Substitutes for lodash methods
|
|
*/
|
|
|
|
exports.difference = function (bigArr, smallArr) {
|
|
var diff = []
|
|
for (var i = 0; i < bigArr.length; i++) {
|
|
var ele = bigArr[i]
|
|
if (smallArr.indexOf(ele) == -1) {
|
|
diff.push(ele)
|
|
}
|
|
}
|
|
return diff
|
|
}
|
|
|
|
exports.flatten = function (arr) {
|
|
return [].concat.apply([], arr)
|
|
}
|
|
|
|
exports.find = function (arr, fn) {
|
|
var found = null
|
|
for (var i = 0; i < arr.length; i++) {
|
|
if (fn(arr[i])) {
|
|
found = arr[i]
|
|
break
|
|
}
|
|
}
|
|
return found
|
|
}
|
|
|
|
exports.findLastIndex = function (arr, fn) {
|
|
var found = -1
|
|
for (var i = arr.length - 1; i >= 0; i--) {
|
|
if (fn(arr[i])) {
|
|
found = i
|
|
break
|
|
}
|
|
}
|
|
return found
|
|
}
|
|
|
|
exports.includes = function (arr, item) {
|
|
var found = false
|
|
for (var i = 0; i < arr.length; i++) {
|
|
if (arr[i] === item) {
|
|
found = true
|
|
break
|
|
}
|
|
}
|
|
return found
|
|
}
|
|
|
|
exports.isNaN = function (n) {
|
|
return Number.isNaN(n)
|
|
}
|
|
|
|
exports.keys = function (obj) {
|
|
return Object.keys(obj)
|
|
}
|
|
|
|
exports.pullAt = function (arr, i) {
|
|
var res = arr.splice(i, 1)
|
|
return res
|
|
}
|
|
|
|
exports.unique = function (arr, i) {
|
|
return arr.filter(function (elem, pos) {
|
|
return arr.indexOf(elem) == pos
|
|
})
|
|
}
|