JS数组数据操作demo整理

1.数组中最大值

// 1.遍历比较
var arr = [6,10,66,55,78]var max = arr[0];
for(var i = 1,i< arr.length;i++) {
  if(arr[i]>max){
   max = arr[i]
  }
}
console.log(max)
// 2.三元表达式
function getMax(num1, num2, num3) {
            return num1 > num2 ? (num1 > num3 ? num1 : num3):(num2>num3? num2:num3)
        }
  console.log(getMax(3,5,9));

2.筛选数组

// 筛选出大于2000的数据
  var arr = [1500, 1200, 2000, 2100, 1800];
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] < 2000) {
                // 或用newArr[newArr.length] = arr[i];
                newArr.push(arr[i]);
            }
        }
  console.log(newArr);

3.数组排序

        var arr1 = [13, 4, 77, 1, 7];
        arr1.sort(function(a, b) {
            //  return a - b; 升序的顺序排列
            return b - a; // 降序的顺序排列
        });
        console.log(arr1);

4.翻转数组

     var arr = ['pink', 'red', 'blue'];
        // 1.reverse()
        arr.reverse();
        console.log(arr);
       // 2.数组长度递减
    var newArr = []
    for (var i = arr.length - 1; i >= 0; i--) {
        newArr[newArr.length] = arr[i]
    }
    console.log(newArr);
    //  3.新数组递增
    var j = 0
    for (var i = arr.length - 1; i >= 0; i--) {
         newArr[j] = arr[i];
         j++;
     }
    console.log(newArr);
      // 4.用while循环
      var newArr = [];
      var i = arr.length - 1;
      while (true) {
        if (i < 0) {
          break;
        } else {
          newArr[newArr.length] = arr[i];
          i--;
        }
      }
      console.log(newArr);

5.数组去重

 function unique(arr) {
      var newArr = [];
            // 遍历旧数组
        for (var i = 0; i < arr.length; i++) {
                // 拿着旧数组的元素 到 新数组中去判断,是否存在
                if (newArr.indexOf(arr[i]) === -1) {
                    // 如果不存在,就添加到新数组中
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        }
        var demo = unique(['blue', 'green', 'blue'])
        console.log(demo);

6.统计出现最多的字符和次数

        // 1.第一种方式
        var str = 'abcoefoxyozzopp';
        var o = {};
        for (var i = 0; i < str.length; i++) {
            var chars = str.charAt(i); // charAt用于返回指定索引处的字符,chars所有对应索引
            if (o[chars]) {
                o[chars]++; // 多次的o.o=4
            } else {
                o[chars] = 1;// 一次的,相当于o.a = 1
            }
        }
        console.log(o);
        // 2. 遍历对象
        var max = 0;
        var ch = '';
        for (var k in o) {
            // k 得到是 属性名
            // o[k] 得到的是属性值
            if (o[k] > max) {
                max = o[k];
                ch = k;
            }
        }
        console.log(max);
        console.log('最多的字符是' + ch);
        // 1.第二种方式
       var str = "oabcoefoxyozzopp";
        var index = str.indexOf('o');
        var num = 0;
        while (index !== -1) {
            console.log(index);
            num++;
            index = str.indexOf('o', index + 1);
        }
        console.log('o出现的次数是: ' + num);

7.合并数组

      var arr = [1, 2, 3, 4, 5];
      var arr1 = [6, 7, 8, 9, 10]var newArr = [];
        for (var i = 0; i < arr.length; i++) {
          newArr[newArr.length] = arr[i];
        }
        for (var i = 0; i < arr1.length; i++) {
         newArr[newArr.length] = arr1[i];
       }
      console.log(newArr);

8. 数组最大值最小值

 function getMaxAndMin(arr) {
        var max = +arr[0];
        var min = +arr[0];
        for (var i = 1; i < arr.length; i++) {
          if (max < arr[i]) {
            max = arr[i];
          }
          if (min > arr[i]) {
            min = arr[i];
          }
        }
        alert(`最大值是${max},最小值是${min}`);
      }
      getMaxAndMin([1, 2, 3, 4, 5]);

9.数组去零

    // 方式一:将不为0的值存入一个新的数组
      var arr = [4, 0, 7, 9, 0, 0, 2, 6, 0, 3, 1, 0];
      var newArr = [];
      for (var i = 0; i < arr.length; i++) {
        if (arr[i] != 0) {
          newArr.push(arr[i]);
        }
      }
      console.log(newArr);
    // 方式二:将原数组中0去掉后形成一个不包含 0 的新数组
      var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] != 0) {
                newArr[newArr.length] = arr[i];
            }
        }
        console.log(newArr);

10.数组分割

  var arr = ["导师", "班长", "班主任", "组长"];
       var str = "";
      for (var i = 0; i < arr.length; i++) {
        if (i != arr.length - 1) {
          str += arr[i] + "|";// 不加符号默认为,
        } else {
          str += arr[i];
        }
      }
      console.log(str);

11.数组中数据所在位置的索引

   var arr = [5, 6, 8, 9, 10, 8];
        //   寻找8在数组中的位置
        var count = 0; // 查找次数
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] == 8) {
                console.log(i);
            } else {
                count++; 
                // 如果该元素不在数组中,满足下面条件
                if (count == arr.length - 1) {
                    alert("没找到该元素");
                }
            }
        }

12.数组数据截取

        var arr2 = ['red', 'green', 'blue', 'purple', 'skyblue', 1, 2, 3];
        var newArr = []
        while (true) {
            if (arr2.length == 0) {
                break;
            }
            var res = arr2.splice(0,3);
            newArr.push(res)
    }
    console.log(newArr);

13.格式化日期 时分秒

 // 格式化日期 时分秒
        function getTimer() {
            var time = new Date();
            var h = time.getHours();
            h = h < 10 ? '0' + h : h;
            var m = time.getMinutes();
            m = m < 10 ? '0' + m : m;
            var s = time.getSeconds();
            s = s < 10 ? '0' + s : s;
            return h + ':' + m + ':' + s;
        }
        console.log(getTimer());

14.格式化日期 年月日

 // 格式化日期 年月日 
        var date = new Date();
        console.log(date.getFullYear()); // 返回当前日期的年  2019
        console.log(date.getMonth() + 1); // 月份 返回的月份小1个月   记得月份+1 呦
        console.log(date.getDate()); // 返回的是 几号
        console.log(date.getDay()); // 3  周一返回的是 1 周六返回的是 6 但是 周日返回的是 0
        // 写一个 2019年 5月 1日 星期三
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        var dates = date.getDate();

        var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
        var day = date.getDay();
        console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值