• 项目经验总结


     一、项目中对数组的操作

      1.数组去重通过Set数组去重

    let arr = [4, 1, 3, 3, 2, '2'];
    let uniqueArr = [...new Set(arr)];
    console.log(uniqueArr); // [4, 1, 3, 2, "2"]

       2.数组排序

    方法一、sort方法排序
    var
    fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // 对 fruits 中的元素进行排序 fruits.reverse();
    方法二、冒泡排序

    var arr=[1,5,7,9,16,2,4];

    //冒泡排序,每一趟找出最大的,总共比较次数为arr.length-1次,每次的比较次数为arr.length-1次,依次递减
    var temp;
    for(var i=0;i<arr.length-1;i++){
      for(var j=0;j<arr.length-1;j++){
      if(arr[j]>arr[j+1]){
      temp=arr[j];
      arr[j]=arr[j+1];
      arr[j+1]=temp;
    }
    }
    }

      3.将数组转为字符串

    场景一、将数组转化为普通的字符串
    var
    a = [1,[2,3],[4,5]],[6,[7,[8,9],0]]]; //定义多维数组 var s = a.toString(); //把数组转换为字符串 console.log(S); //返回字符串“1,2,3,4,5,6,7,8,9,0”
    场景二、将数组按照一定的规则分割字符串

    var a = [1,2,3,4,5]; //定义数组

    var s = a.join("=="); //指定分隔符

    console.log(s);
     

      4.数组的增加、删除、查找

    场景一、增加
        push尾插
    var arr = ['a','b','c','d']
    arr.push("e")  // a,b,c,d,e
    arr.push("e", "f");
       unshift()头插
    var arr = ['a','b','c','d']
    arr.unshift("e")  // e,a,b,c,d
    arr.unshift("e", "f") //  e,f,a,b,c,d
    场景二、删除
        头删
    var arr = ['a','b','c','d']
    arr.shift() // 删除 a,  arr = ['b','c','d']
    // 如果 arr = [] ,  arr.shift()  返回 undefined
        尾删pop()
    var arr = ['a','b','c','d']
    arr.pop() // 删除 d,  arr = ['a','b','c']
    // 如果 arr = [] ,  arr.pop()  返回 undefined
    场景三、指定位置删除
    splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。
    arrayObject.splice(index,howmany,item1)
    index: 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
    howmany: 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
     item1, ..., itemX:  可选。向数组添加的新项目。

     5.数组的合并

    方法一、
    let arr1=[1,2,3];
    let arr2=[4,5,6];
    let arr3=arr1.concat(arr2);
    方法二、
    let arr3=[...arr1,...arr2]

    6.判断一个数组中是否包含某个值

    //方法一、array.indexof,判断数组中是否存在某个值,如果存在返回数组元素的下标,否则返回-1
    let arr=[1,2,3,4,5];
    let index=arr.indexof(1);
    console.log(index)//返回下标0
    //方法二、array.includes(),判断数组中是否存在某个值,如果存在返回true,否则返回false
    if(arr.includes(1)){
    console.log("结果成立")
    }
    //方法3、array.find(回调函数,[]),返回数组中满足条件的第一个元素的值,如果没有,返回undefined
    let numbers=[12,3,4,2,44];
    let result=numbers.find(item=>{
    return item>8
    })
    console.log(result)//结果是12
    勤学似春起之苗,不见其增,日有所长; 辍学如磨刀之石,不见其损,日所有亏!
  • 相关阅读:
    leetcode:655. 输出二叉树
    leetcode:763. 划分字母区间
    leetcode:3. 无重复字符的最长子串
    leetcode:2. 两数相加
    leetcode每日一题:409. 最长回文串
    leetcode:1381. 设计一个支持增量操作的栈
    leetcode:1380. 矩阵中的幸运数
    [数据结构] 迷宫问题(栈和队列,深搜和广搜)
    [数据结构] N皇后问题
    [2011山东ACM省赛] Sequence (动态规划)
  • 原文地址:https://www.cnblogs.com/qiaozhiming123/p/14966396.html
Copyright © 2020-2023  润新知