提交 858febaf 编写于 作者: 小刘28's avatar 小刘28 💬

feat:有git忽略配置文件;完成部分数组库的处理内容;

上级 f24f9846
......@@ -116,4 +116,8 @@ dist
.pnp.*
# uniapp相关的忽略资源
.hbuilderx
.hbuilderx/
unpackage/
# gitee相关的忽略资源
.gitee/
\ No newline at end of file
......@@ -7,208 +7,159 @@
**/
export default {
}
/**
* @description 值是否包含在数组内
* @param { Object } array 数组
* @param { Object } value 值
* @return { Boolean } true:包含,false:不包含
* @example
* obj.ubArrayIsContains([1,2],2);<br/>
* true
*/
function ubArrayIsContains(array, value) {
return array.indexOf(value) != -1 ? true : false;
}
/**
* @description 数组排序
* @param { Array } array 数组
* @param { Number } 排序方式 1:从小到大 2:从大到小 3:随机
* @return { Array } 排序后的数组
* @example
* obj.ubArraySort([1,2,3],1);<br/>
* [1,2,3]
*/
function ubArraySort(array, type = 1) {
return array.sort((a, b) => {
switch (type) {
case 1:
return a - b;
case 2:
return b - a;
case 3:
return Math.random() - 0.5;
default:
return array;
}
});
}
/**
* @description 数组去重
* @param { Object } array 待去重数组
* @return { Array } 去重后的数组
* @example
* obj.ubArrayUnique([1,2,1]);
* [1,2]
*/
function ubArrayUnique(array) {
if (Array.hasOwnProperty('from')) {
return Array.from(new Set(array));
} else {
let n = {},
r = [];
for (let i = 0; i < array.length; i++) {
if (!n[array[i]]) {
n[array[i]] = true;
r.push(array[i]);
/**
* @Description 值是否包含在数组内
* @Date 2022年7月21日08:14:28
* @Param {Array} array 数组
* @Param {Sting|Number} value 值
* @Return {Boolean} true:包含,false:不包含
**/
arrayIsContains(array, value) {
return array.indexOf(value) != -1 ? true : false;
},
/**
* @Description 数组排序
* @Date 2022年7月21日08:14:28
* @Param {Array} array 数组
* @Param {Number} 排序方式 1:从小到大 2:从大到小 3:随机
* @Return {Array} 排序后的数组
**/
arraySort(array, type = 1) {
return array.sort((a, b) => {
switch (type) {
case 1:
return a - b;
case 2:
return b - a;
case 3:
return Math.random() - 0.5;
default:
return array;
}
});
},
/**
* @Description 数组去重
* @Date 2022年7月21日08:14:28
* @Param {Array} array 待去重数组
* @Return {Array} 去重后的数组
**/
arrayUnique(array) {
if (Array.hasOwnProperty('from')) {
return Array.from(new Set(arr));
} else {
let r = [],
NaNBol = true;
for (let i = 0; i < array.length; i++) {
if (array[i] !== array[i]) {
if (NaNBol && r.indexOf(array[i]) === -1) {
r.push(array[i]);
NaNBol = false;
}
} else {
if (r.indexOf(array[i]) === -1) {
r.push(array[i]);
}
}
return r;
}
}
return r;
}
// 备注:上面 else 里面的排重并不能区分 2 和 '2',但能减少用indexOf带来的性能,暂时没找到替代的方法。。。
// 正确排重
// if (Array.hasOwnProperty('from')) {
// return Array.from(new Set(arr));
// } else {
// let r = [],
// NaNBol = true;
// for (let i = 0; i < array.length; i++) {
// if (array[i] !== array[i]) {
// if (NaNBol && r.indexOf(array[i]) === -1) {
// r.push(array[i]);
// NaNBol = false;
// }
// } else {
// if (r.indexOf(array[i]) === -1) {
// r.push(array[i]);
// }
// }
// return r;
// }
// }
}
/**
* @description 求两个数组的并集
* @param { Array } array1 第1个数组
* @param { Array } array2 第2个数组
* @return { Array } 数组并集
* @example
* obj.ubArrayUnion([1,2],[2,3]);<br/>
* [1,2,3]
*/
function ubArrayUnion(array1, array2) {
let newArray = array1.concat(array2);
return ubArrayUnique(newArray);
}
/**
* @description 求两个数组的交集
* @param { Array } array1 第1个数组
* @param { Array } array2 第2个数
* @return { Array } 数组交集
* @example
* obj.ubArrayIntersect([1,2],[2,3]);<br/>
* [2]
*/
function ubArrayIntersect(array1, array2) {
array1 = ubArrayUnique(array1);
return map(array1, function(o) {
return ubArrayIsContains(array2, o) ? o : null;
});
}
/**
* @description 删除指定元素
* @param { Array } array 数组
* @param { Object } value 指定值
* @return { Array } 删除后的数组
* @example
* obj.ubArrayRemove(['1','2'],'2');<br/>
* ['1']
*/
function ubArrayRemove(array, value) {
let index = array.indexOf(value);
if (index > -1) {
array.splice(index, 1);
}
return array;
}
/**
* @description 删除指定数组中的元素
* @param { Array } array 数组
* @param { Array } array 指定值
* @return { Array } 删除后的数组
* @example
* obj.ubArrayRemove(['1','2','3'],['2','3','4']);<br/>
* ['1']
*/
function ubArrayRemoveArray(array, deletArray) {
for (var i = 0; i < deletArray.length; i++) {
let index = array.indexOf(deletArray[i]);
},
/**
* @Description 求两个数组的并集
* @Date 2022年7月21日08:14:28
* @Param {Array} array1 第1个数组
* @Param {Array} array2 第2个数组
* @Return {Array} 数组并集
**/
arrayUnion(array1, array2) {
let newArray = array1.concat(array2);
return ubArrayUnique(newArray);
},
/**
* @Description 求两个数组的交集
* @Date 2022年7月21日08:14:28
* @Param {Array} array1 第1个数组
* @Param {Array} array2 第2个数组
* @Return {Array} 数组交集
**/
arrayIntersect(array1, array2) {
array1 = ubArrayUnique(array1);
return map(array1, function(o) {
return ubArrayIsContains(array2, o) ? o : null;
});
},
/**
* @Description 删除指定元素
* @Date 2022年7月21日08:14:28
* @Param {Array} array 数组
* @Param {Sting|Number} value 待删除值
* @Return {Array} 删除后的数组
**/
arrayRemove(array, value) {
let index = array.indexOf(value);
if (index > -1) {
array.splice(index, 1);
}
return array;
},
/**
* @Description 删除指定数组中的元素
* @Date 2022年7月21日08:14:28
* @Param {Array} array 数组
* @Param {Array} deletArray 指定值
* @Return {Array} 删除后的数组
**/
arrayRemoveArray(array, deletArray) {
for (let i = 0; i < deletArray.length; i++) {
let index = array.indexOf(deletArray[i]);
if (index > -1) {
array.splice(index, 1);
}
}
return array;
},
/**
* @Description 将类数组转换成数组
* @Date 2022年7月21日08:14:28
* @Param {Object} ary 类数组
* @Return {Array} 数组
**/
arrayFromArrayLike(araryLike) {
let array = [];
if (Array.isArray(araryLike)) {
array = araryLike;
} else {
araryLike.length = araryLike.length + 1;
array = Array.prototype.slice.call(araryLike,1);
}
return array;
},
/**
* @Description 数组最大值
* @Date 2022年7月21日08:14:28
* @Param {Array} array 数组
* @Return {String|Number} 最大值
**/
arrayMax(array) {
return Math.max.apply(null, array);
},
/**
* @Description 数组最小值
* @Date 2022年7月21日08:14:28
* @Param {Array} array 数组
* @Return {String|Number} 最小值
**/
arrayMin(array) {
return Math.min.apply(null, array);
}
return array;
}
/**
* @description 将类数组转换成数组
* @param { Object } ary 类数组
* @return { Array } 数组
* @example
* let ary = {<br/>
* 0:'a',<br/>
* 1:'第二',<br/>
* 4:'1234',<br/>
* length:3<br/>
* };<br/>
* obj.ubArrayFromArray(art);<br/>
* ['a','第二','1234']
*/
function ubArrayFromArrayLike(araryLike) {
let array = [];
if (Array.isArray(araryLike)) {
array = araryLike;
} else {
araryLike.length = araryLike.length + 1;
array = Array.prototype.slice.call(araryLike,1);
}
return array;
}
/**
* @description 数组最大值
* @param { Array } array 数组
* @return { Object } 最大值
* @example
* obj.ubArrayMax([1,1,2,3,3]);<br/>
* 3
*/
function ubArrayMax(array) {
return Math.max.apply(null, array);
}
/**
* @description 数组最小值
* @param { Array } array 数组
* @return { Object } 最小值
* @example
* obj.ubArrayMin([1,1,2]);<br/>
* 1
*/
function ubArrayMin(array) {
return Math.min.apply(null, array);
}
/**
* @description 数组求和
......@@ -270,18 +221,3 @@ function each(array, fn) {
}
}
}
export default {
ubArrayIsContains,
ubArraySort,
ubArrayUnique,
ubArrayUnion,
ubArrayIntersect,
ubArrayRemove,
ubArrayRemoveArray,
ubArrayFromArrayLike,
ubArrayMax,
ubArrayMin,
ubArraySum,
ubArrayAverage
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册