Browse Source

持续更新中······

striveDJiang 8 years ago
parent
commit
bed12fab35
10 changed files with 196 additions and 4 deletions
  1. 19 3
      README.md
  2. 13 0
      array/arrayDisorder.js
  3. 11 0
      array/arrayRandom.js
  4. 56 0
      array/arrayRemoveRepeat.js
  5. 13 0
      array/arraySum.js
  6. 18 0
      array/getEleCount.js
  7. 24 0
      array/maxArr.js
  8. 24 0
      array/minArr.js
  9. 1 1
      cookie/setCookie.js
  10. 17 0
      string/stringFormat.JS

+ 19 - 3
README.md

@@ -2,6 +2,13 @@
 
 ### Array  
 ####   [arrayEqual][arrayEqual]  判断两个数组是否相等 
+####   [arrayRemoveRepeat][arrayRemoveRepeat]  数组去重
+####   [arrayDisorder][arrayDisorder]  打乱数组顺序
+####   [maxArr][maxArr]  找出数组中的最大值
+####   [minArr][minArr]  找出数组中的最小值
+####   [arraySum][arraySum]  数组求和
+####   [arrayRandom][arrayRandom]  从数组中随机获取元素
+####   [getEleCount][getEleCount]  返回数组或字符串中一个元素出现的次数
 
 ### Class
 ####   [addClass][addClass]  为元素添加class  
@@ -38,7 +45,7 @@
 ####   [randomColor][randomColor]   随机生成颜色
 ####   [randomNum][randomNum]  生成指定范围随机数 
 
-### Regexp  
+### RegExp  
 ####   [isEmail][isEmail]  判断是否为邮箱地址 
 ####   [isIdCard][isIdCard]  判断是否为身份证号
 ####   [isPhoneNum][isPhoneNum]  判断是否为手机号  
@@ -46,10 +53,11 @@
 
 ### String  
 ####   [digitUppercase][digitUppercase]  现金额转大写
-####   [removeSpace][removeSpace]  字符串去除空格
-####   [changeCase][changeCase]  字符串大小写转换
+####   [removeSpace][removeSpace]  去除空格
+####   [changeCase][changeCase]  大小写转换
 ####   [repeatCopy][repeatCopy]  重复复制
 ####   [stringReplace][stringReplace]  字符串替换
+####   [stringFormat][stringFormat]  字符串格式化
 
 ### Support  
 ####   [isSupportWebP][isSupportWebP]  判断浏览器是否支持webP格式图片
@@ -64,6 +72,13 @@
 ####   [stringfyQueryString][stringfyQueryString]  对象序列化
 
 [arrayEqual]:https://github.com/striveDJiang/utils/blob/master/array/arrayEqual.js
+[arrayRemoveRepeat]:https://github.com/striveDJiang/utils/blob/master/array/arrayRemoveRepeat.js
+[arrayDisorder]:https://github.com/striveDJiang/utils/blob/master/array/arrayDisorder.js
+[maxArr]:https://github.com/striveDJiang/utils/blob/master/array/maxArr.js
+[minArr]:https://github.com/striveDJiang/utils/blob/master/array/minArr.js
+[arraySum]:https://github.com/striveDJiang/utils/blob/master/array/arraySum.js
+[arrayRandom]:https://github.com/striveDJiang/utils/blob/master/array/arrayRandom.js
+[getEleCount]:https://github.com/striveDJiang/utils/blob/master/array/getEleCount.js
 
 [addClass]:https://github.com/striveDJiang/utils/blob/master/class/addClass.js
 [hasClass]:https://github.com/striveDJiang/utils/blob/master/class/hasClass.js
@@ -102,6 +117,7 @@
 [changeCase]:https://github.com/striveDJiang/utils/blob/master/string/changeCase.js
 [repeatCopy]:https://github.com/striveDJiang/utils/blob/master/string/repeatCopy.js
 [stringReplace]:https://github.com/striveDJiang/utils/blob/master/string/stringReplace.js
+[stringFormat]:https://github.com/striveDJiang/utils/blob/master/string/stringFormat.js
 
 [isSupportWebP]:https://github.com/striveDJiang/utils/blob/master/support/isSupportWebP.js
 

+ 13 - 0
array/arrayDisorder.js

@@ -0,0 +1,13 @@
+/**
+ * 
+ * @desc 打乱数组顺序
+ * @param {Array} arr
+ * @return {Array}
+ */
+function arrayDisorder(arr) {
+    return arr.sort(function () {
+        return Math.random() - 0.5;
+    });
+};
+
+module.exports = arrayDisorder;

+ 11 - 0
array/arrayRandom.js

@@ -0,0 +1,11 @@
+/**
+ * 
+ * @desc 从数组中随机获取元素
+ * @param {Array} arr
+ * @return {Number}
+ */
+function arrayRandom(arr) {
+    return arr[Math.floor(Math.random() * arr.length)];
+};
+
+module.exports = arrayRandom;

+ 56 - 0
array/arrayRemoveRepeat.js

@@ -0,0 +1,56 @@
+/**
+ * 
+ * @desc 数组去重
+ * @param {Array} arr 
+ * @return {Array}
+ */
+// 第一种方法:
+function arrayRemoveRepeat(arr) {
+    return arr.filter(function (item, index, self) {
+        return self.indexOf(item) === index;
+    });
+};
+
+// 第二种方法:
+// function arrayRemoveRepeat(arr) {
+//     let newarr = [];
+//     arr.forEach((item, index) => {
+//         newarr.indexOf(item) === -1 ? newarr.push(item) : '';
+//     });
+//     return newarr;
+// };
+
+// 第三种方法:
+// function arrayRemoveRepeat(arr) {
+//     let newarr = [];
+//     for (let i = 0; i < arr.length; i++) {
+//         for (let j = i + 1; j < arr.length; j++) {
+//             if (arr[i] === arr[j]) {
+//                 j = ++i;
+//             }
+//         }
+//         newarr.push(arr[i]);
+//     }
+//     return newarr;
+// };
+
+// 第四种方法:
+// function arrayRemoveRepeat(arr) {
+//     let newarr = [];
+//     Array.prototype.forEach.call(arguments[0], (item, index) => {
+//         newarr.indexOf(item) === -1 ? newarr.push(item) : '';
+//     });
+//     return newarr;
+// };
+
+// 第五种方法:
+// function arrayRemoveRepeat(arr) {
+//     return Array.from(new Set(arr));
+// };
+
+// 第六种方法:
+// function arrayRemoveRepeat(arr) {
+//     return [...new Set(arr)];
+// };
+
+module.exports = arrayRemoveRepeat;

+ 13 - 0
array/arraySum.js

@@ -0,0 +1,13 @@
+/**
+ * 
+ * @desc 数组求和(数字类型的数组)
+ * @param {Array} arr
+ * @return {Number}
+ */
+function arraySum(arr) {
+    return arr.reduce(function (pre, cur) {
+        return pre + cur;
+    });
+};
+
+module.exports = arraySum;

+ 18 - 0
array/getEleCount.js

@@ -0,0 +1,18 @@
+/**
+ * 
+ * @desc 返回数组或字符串中一个元素出现的次数
+ * @param {Array|String} arr
+ * @param {Number|String} ele
+ * @return {Number}
+ */
+function getEleCount(obj, ele) {
+    var num = 0;
+    for (var i = 0, len = obj.length; i < len; i++) {
+        if (ele === obj[i]) {
+            num++;
+        }
+    }
+    return num;
+};
+
+module.exports = getEleCount;

+ 24 - 0
array/maxArr.js

@@ -0,0 +1,24 @@
+/**
+ * 
+ * @desc 找出数组中的最大值(数字类型的数组)
+ * @param {Array} arr
+ * @return {Number}
+ */
+// 第一种方法:
+function maxArr(arr) {
+    return Math.max.apply(null, arr);
+};
+
+// 第二种方法:
+// function maxArr(arr) {
+//     return Math.max(...arr);
+// };
+
+// 第三种方法:
+// function maxArr(arr) {
+//     return arr.reduce(function (prev, next) {
+//         return Math.max(prev, next);
+//     });
+// };
+
+module.exports = maxArr;

+ 24 - 0
array/minArr.js

@@ -0,0 +1,24 @@
+/**
+ * 
+ * @desc 找出数组中的最小值(数字类型的数组)
+ * @param {Array} arr
+ * @return {Number}
+ */
+// 第一种方法:
+function minArr(arr) {
+    return Math.min.apply(null, arr);
+};
+
+// 第二种方法:
+// function minArr(arr) {
+//     return Math.min(...arr);
+// };
+
+// 第三种方法:
+// function minArr(arr) {
+//     return arr.reduce(function (prev, next) {
+//         return Math.min(prev, next);
+//     });
+// };
+
+module.exports = minArr;

+ 1 - 1
cookie/setCookie.js

@@ -3,7 +3,7 @@
  * @desc  设置Cookie
  * @param {String} name 
  * @param {String} value 
- * @param {Number} days 
+ * @param {Number} days:过期时间 
  */
 function setCookie(name, value, days) {
     var date = new Date();

+ 17 - 0
string/stringFormat.JS

@@ -0,0 +1,17 @@
+/**
+ * 
+ * @desc   格式化字符串
+ * @param  {String} str 
+ * @param  {String} size:单个字符的长度
+ * @param  {Number} delimiter:用来连接的字符
+ * @return {String} 
+ */
+function stringFormat(str, size, delimiter) {
+    var _size = size || 3,
+        _delimiter = delimiter || ',';
+    var regText = '\\B(?=(\\w{' + _size + '})+(?!\\w))';
+    var reg = new RegExp(regText, 'g');
+    return str.replace(reg, _delimiter);
+};
+
+module.exports = stringFormat