0304-增删改

阅读 204

2022-03-11

数组与对象

关于数组

       谈谈你对数组的认识?
  • 什么是数组?

    索引从0开始,并且存放相同结构的集合 是数组

  • 为什么有数组?(数组解决了什么问题,也是数组的作用?

    相同结构的数据 统一管理(处理)问题

  • 数组有什么特点

    1:由 索引和数组元素组成

    2:有序的 与长度(长度表示数组有多少个元素,每个都有自己的位置编号)
    3:数组元素可以为js任意类型的数据

  • 索引作用:查找元素

  • 长度的作用:记录数组有多少元素

数组的新增

  • var arr = [2, 3, 5, 7, 8];

    1.从arr尾部加 ‘dundun’

    arr[arr.length] = ‘dundun’

    1. 从arr头部加 ‘xuerongrong’

    方法1

    var arr_ = [];
    
    arr_[0] = 'xuerongrong';
    
    for (var i = 0, len = arr.length; i < len; i++) {
    
    var count = i + 1;
    
     //将数据新增到 arr_中
    
    arr_[count] = arr[i]
    
    }
    

思路:引进一个新数组,将新数组索引值为0的地方放上’xuerongrong’,引入一个变量count=i+1;也就是将原数组每一个索引往后移动一位后放进新数组.

 方法2:换值

      var arr = [2, 3, 5, 7, 8];

     for (var i = arr.length; i >= 0; i--) {
         arr[i] = arr[i - 1];
     }
     arr[0] = 'xuerongrong';
     console.log(arr);

思路:重点在于length的长度,长度刚好等于索引值+1,可以让索引值被赋值到后一位

3.在第三个位置 加’bingdundun’

    var val = 'bingdundun';
    var old = [arr[3], arr[4]];
    arr[3] = val;

    for (var i = 0; i < old.length; i++) {
        var count = 3 + i + 1;
        arr[count] = old[i]
    }
    console.log(arr);

对象

对象的定义

  •   对象: 用于表示不同意义的数据
      对象: key - value 键值对
      key 键 value 值
      key 都是字符串 相当于变量
      value 任意类型的js数据
    
  • 循环读取所有key

      var keyArr = []
      var len = keyArr.length;
      for (var k in obj) {
          console.log(k);
          keyArr[len] = k;
          len++
      }
      console.log(keyArr);
    
  • 获取对象中的键

      function keys(obj) {
          var res = [];
          var len = res.length;
          for (var k in obj) {
              res[len] = k;
              len++
          }
          return res
      }
      var keysArr = keys(obj);
      console.log(keysArr);
    
  • 获取对象中的值

       function values() {
          var res = [];
          for (var k in obj) {
              var len = res.length;
              res[len] = obj[k];
          }
          return res
      }
      var obj_val = values(obj)
    

数组的增删改

    push() 从数组尾部新增元素
           参数:被新增的元素
    arr.push('dundun');//在后面加

    arr.unshift('xuerongrong');//加在最前面

    // arr.splice(index,count,addEL)//从哪里加;加几个;加的什么
    arr.splice(1, 1, 'aaa');

    concat() 数组合并
    var test = [1, 3, 4]
    arr = arr.concat(test)

    从头
    arr.shift()

    从尾
    arr.pop()

    从某一个位置删除几个元素
    arr.splice(1,1)

       arr.splice(1, 1, '更改数据')

查询

  var test = 'gaohangyang';
  var res = arr.indexOf(test);

测试题

1 将数组变为对象

输入 var arr = [‘name’,‘fanzhen’,age,12]

输出: {name:‘fanzhen’,age:12}

  • var obj = {};
      var arr = ['name', 'fanzhen', 'age', 12];
      for (var i = 0; i < arr.length; i++) {
          if (i == 0 || i % 2 == 0) {
              key = arr[i];
          } else {
              obj[key] = arr[i];
          }
      }
      console.log(obj);
    

2: 过滤对象中为空字符的字段

输入:{name:’’,age:12}

输出:{age:12}

  • var obj = { name: '', age: 12 };
      for (var key in obj) {
          if (obj[key] == '') {
               delete obj[key];
          }
      }
      console.log(obj);
    

3: 封装一个数组变对象的函数

  •   function objs(arr) {
          var obj = {};
          for (var i = 0; i < arr.length; i++) {
              if (i == 0 || i % 2 == 0) {
                  key = arr[i];
              } else {
                  obj[key] = arr[i];
              }
          }
          return obj;
      }
      var res = objs([2, 3, 5, 6, 4]);
      console.log(res);
    

4: 封装一个过滤对象中空字符的函数

  • function objs(arr) {
          var obj = arr;
          for (var key in obj) {
              if (obj[key] == '') {
                  delete obj[key];
              }
          }
          return obj;
      }
      var obj1 = {
          name: '',
          age: 12
      };
      var res = objs(obj1)
      console.log(res);
    

精彩评论(0)

0 0 举报