This commit is contained in:
毛财君
2023-07-06 17:37:33 +08:00
parent 06f26608af
commit 197b38ca6f
816 changed files with 236883 additions and 989 deletions

View File

@@ -0,0 +1,38 @@
var each = require('./each')
var includes = require('./includes')
var isFunction = require('./isFunction')
var property = require('./property')
/**
* 数组去重
*
* @param {*} array 数组
* @param {*} iterate 字段或回调
* @param {*} context
* @returns
*/
function uniq (array, iterate, context) {
var result = []
if (iterate) {
if (!isFunction(iterate)) {
iterate = property(iterate)
}
var val, valMap = {}
each(array, function (item, key) {
val = iterate.call(context, item, key, array)
if (!valMap[val]) {
valMap[val] = 1
result.push(item)
}
})
} else {
each(array, function (value) {
if (!includes(result, value)) {
result.push(value)
}
})
}
return result
}
module.exports = uniq