面试题个人总结

46 阅读3分钟

数组API,至少15个

  • push()将一个或多个元素添加到数组的末尾,并返回该数组的新长度

  • pop()从数组中删除最后一个元素,并返回该元素的值,此方法会更改数组的长度

  • unshift()将一个或多个元素添加到数组开头,并返回该数组的新长度

  • shift()从数组删除第一个元素,并返回该元素的值,此方法会更改数组的长度

  • splice()通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被删除的内容,此方法会更改数组的长度

  • reverse()将数组中元素的位置颠倒,并返回该数组,该方法会改变原数组

  • sort()原地算法对数组的元素的元素进行排序,并返回数组,默认排序顺序是在将元素转换为字符串,然后比较它们的【UTF-16代码单元值】/【码点】/(字符在字符集中的序号)

 function demoSort2() {
        // function compareNumbers(a, b) {
        //   return a - b;
        // }
        // var compareNumbers = function (a, b) {
        //   return a - b;
        // };

        var arr = [3, 1, 4, 5, 9, 2, 6, 8, 7, 0];
        console.log(arr);

        /* 给arr排序 */
        // arr.sort(compareNumbers);
        arr.sort(
          // 排序规则函数
          function (a, b) {
            var ret = a - b;
            console.log("比较函数被调用了", a, b, ret);

            // 返回值 < 0 a在前
            // 返回值 = 0 ab位置保持不变
            // 返回值 > 0 a在后

            // 所有元素位置不变
            // return 0

            // 升序排列
            // a<b 返回负数 a在前
            // a=b 返回0 ab位置不变
            // a>b 返回正数 a在后
            // return a - b

            return b - a;
          }
        );
        console.log("排序完毕", arr); //
      }
      // demoSort2();

      /* arr.sort自定义排序规则 */
      function demoSort3() {
        var arr = [
          { name: "大耳儿", level: 9, height: 165, iq: 130 },
          { name: "关二哥", level: 8, height: 212, iq: 110 },
          { name: "环眼贼", level: 7, height: 188, iq: 140 },
        ];

        // arr.sort(
        //   function(a,b){
        //     // 按智商升序
        //     // return a.iq - b.iq

        //     // 按level降序
        //     return b.level - a.level
        //   }
        // )
        // console.log(arr);

        /* 按身高升序排列 */
        function compareFunction(a, b) {
          return a.height - b.height;
        }

        arr.sort(compareFunction);
        console.log(arr);
      }
      // demoSort3();
  • concat()用于合并两个或多个数组,此方法不会更改现有数组,而是返回一个新数组

  • join() 方法将一个数组的所有元素连接成一个字符串并返回这个字符串。 如果数组只有一个item,那么将返回该item而不使用分隔符 如果没有入参一个分隔符(separator)则默认使用",

  • indexOf()方法返回在数组中寻找特定元素首次出现的索引/序号/下标,如果不存在,则返回-1

  • includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false

数组批处理

  • forEach() 对arr的每个元素都执行一下给定的操作函数(处理器函数handler)
  • map() 将每个元素映射为一个新元素
  • filter() 从数组中过滤出符合条件的元素
  • some() 判断是否有元素符合条件
  • erery() 判断所有元素是否都符合条件

字符串有哪些常用API,至少10个

  • indexOf() 检索子串首次出现的下标 没有子串则返回-1
  • lastIndexOf() 检索子串最后一次出现的下标
  • includes() 检索子串是否存在(区分大小写)
  • replace() 替换子串 替换一次
  • replaceAll() 替换子串 替换全部
  • substring() 截取子串 [start,end)
  • slice() 截取子串 [start,end) 负数代表倒数第n个字符
  • split() 肢解字符串为子串数组
  • toUpperCase() 转换大小写
  • startsWith() endsWith() 判断str是否以指定子串开头或结尾