javascript 内置对象

1.数组Array

let arr = [20, 8, 9, 0, 36, 0, 36, -18, 0, 100]

1.1数组元素增加

function add(element) {
  let len = arr.push(element)
  console.log(len)
}

1.2数组元素删除(三种算法)

function del(element) {
  // 算法1
  // let array = []
  // for (let item of arr) {
  //   if (item === element) {
  //     continue
  //   }
  //   array.push(item)
  // }
  // return array

  // 算法2
  // let index = searchElement(element)
  // if (index === -1) {
  //   console.log(element + '不是数组的元素,无法删除')
  //   return
  // }
  // for (let i = index; i < arr.length - 1; i++) {
  //   arr[i] = arr[i + 1]
  // }
  // arr.length--
  // del(element)

  // 算法3
  // let index = searchElement(element)
  // if (index !== -1) {
  //   arr.splice(index, 1)
  // }
  while (1) {
    let index = searchElement(element)
    if (index !== -1) {
      arr.splice(index, 1)
    } else {
      break
    }
  }
}

1.3数组元素修改

function updateElement(oldElement, newElement) {
  let flag = false
  // 只修改第一次出现的元素
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === oldElement) {
      arr[i] = newElement
      flag = true
      break
    }
  }
  if (flag) {
    console.log('修改成功')
  } else {
    console.log('修改失败')
  }
}

1.4修改arr中所有oldElement元素为newElement

function updateAllElement(oldElement, newElement) {
  let count = 0
  // 只修改第一次出现的元素
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === oldElement) {
      arr[i] = newElement
      count++
    }
  }
  if (count !== 0) {
    console.log('成功修改' + count + '个元素' + oldElement)
  } else {
    console.log('修改失败')
  }
}

1.5数组元素查找

function searchElement(element) {
  // 元素element在arr中的下标index
  let index = -1
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === element) {
      index = i
      break
    }
  }
  return index
}

1.6数组元素反转

function reverseArray() {
  // 算法1
  // for (let i = 0, j = arr.length - 1; i < j; i++, j--) {
  //   let t = arr[i]
  //   arr[i] = arr[j]
  //   arr[j] = t
  // }
  // 算法2
  // arr.reverse()
  // 算法3
  let array = []
  for (let i = arr.length - 1; i >= 0; i--) {
    array.push(arr[i])
  }
  arr = array
}

1.7数组元素拼接成字符串

function append(arr, charater) {
  let str = arr.join(charater)
  document.getElementsByClassName('box')[0].innerHTML = str
}

1.8数组元素排序 两次循环 外层循环n-1,内层循环n-i-1,内部循环值交换,小在前大在后

function sortUp() {
  // let n = arr.length
  // for (let i = 0; i < n - 1; i++) {
  //   for (let j = 0; j < n - i - 1; j++) {
  //     if (arr[j] > arr[j + 1]) {
  //       let t = arr[j]
  //       arr[j] = arr[j + 1]
  //       arr[j + 1] = t
  //     }
  //   }
  // }
  arr.sort(function (a, b) {
    return a - b
  })
}
function sortDown() {
  // let n = arr.length
  // for (let i = 0; i < n - 1; i++) {
  //   for (let j = 0; j < n - i - 1; j++) {
  //     if (arr[j] < arr[j + 1]) {
  //       let t = arr[j]
  //       arr[j] = arr[j + 1]
  //       arr[j + 1] = t
  //     }
  //   }
  // }
  arr.sort(function (a, b) {
    return b - a
  })
}

1.9数组元素插入

function insertElement(index, element) {
  // 算法1
  if (index < 0 || index > arr.length - 1) {
    return
  }
  // arr.splice(index, 0, ...element) // 数组解构 ...element =...[200,300,400] = 200,300,400
  // 算法2
  arr.length++
  for (let i = arr.length - 1; i > index; i--) {
    arr[i] = arr[i - 1]
  }
  arr[index] = element
}

1.10求极值

function getMaxAndMin() {
  let max = arr[0]
  let min = arr[0]
  for (let item of arr) {
    if (item > max) {
      max = item
    }
    if (item < min) {
      min = item
    }
  }
  return [min, max]
}

1.11数组元素去重

function removeDuplicates() {
  // let array = []
  // for (let item of arr) {
  //   // item在array中首次出现的下标,如果array不在返回-1
  //   if (array.indexOf(item) === -1) {
  //     array.push(item)
  //   }
  // }
  // return array
  return [...new Set(arr)]
}

1.12遍历所有的数组原生和下标

function listArray() {
  // item是元素,index下标
  arr.forEach(function (item, index) {
    console.log(index, item)
  })
}

// add(15)
// append(arr, ',')
// del(0)
// append(arr, ',')
// updateAllElement(36, 46)
// reverseArray()

// sortUp()
// insertElement(-1, 300)
// let a = getMaxAndMin()
// let array = removeDuplicates()
// append(array, ',')
listArray()

1.13数组的常规算法:

    1、添加

    2、删除

    3、修改

    4、排序

    5、反转

    6、求极值

    7、插入

    8、去重

    9、查找

    10、拼接字符串

1.14数组原生的api

    sort()   push()  splice()   join()    indexOf()     length     reverse()    forEach()

 1.15未提到方法api

    find()     findIndex()      map()     some()     every()     reduce()   lastIndexOf()    filter()  includes()

    pop()    shift()       unshift()    slice()

2.日期

2.1创建日期对象

function fn() {
        // 获得系统时间
        let date = new Date()
        console.log(date) // Thu Apr 28 2022 17:34:10 GMT+0800 (中国标准时间)
      }
      fn()

2.2获得日期对象的年月日时分秒

function fn1() {
        let date = new Date()
        let y = date.getFullYear() // 年
        let mon = date.getMonth() + 1 // 月
        let d = date.getDate() // 日
        let h = date.getHours() // 时
        let min = date.getMinutes() // 分
        let s = date.getSeconds() // 秒
        let str = [y, mon, d].join('-')
        str += ' '
        str += [h, min, s].join(':')
        console.log(str) // 2022-4-28 17:38:7--->2022-04-28 17:38:07
      }
      fn1()

 2.3创建指定某天的日期

function fn2() {
        let date = new Date('2022-8-15 08:00:00')
        console.log('今天是周', date.getDay())
      }
      fn2()

   2.4日期的格式化

function formatDate(v) {
        let date = new Date(v) // 日期不合法 date = 'Invalid Date'
        if (Number.isNaN(Number(date))) {
          // date = 'Invalid Date'  Number(date) = NaN
          date = new Date()
        }
        let y = (date.getFullYear() + '').padStart(4, '0') // 年
        let mon = (date.getMonth() + 1 + '').padStart(2, '0') // 月
        let d = (date.getDate() + '').padStart(2, '0') // 日
        let h = (date.getHours() + '').padStart(2, '0') // 时
        let min = (date.getMinutes() + '').padStart(2, '0') // 分
        let s = (date.getSeconds() + '').padStart(2, '0') // 秒
        let str = [y, mon, d].join('-')
        str += ' '
        str += [h, min, s].join(':')
        console.log(str) //2022-04-28 17:48:00
        return str
      }
      formatDate('hello')

 3.判断数组元素出现的次数

3.1 判断a出现次数

function fn(code) {
        let count = 0
        let arr = ['a', 'b', 'c', 'a', 'd', 'a', 'e']
        // a出现次数
        // arr.forEach(function (item, index) {
        //   if (item === code) {
        //     count++
        //   }
        // })
        // for (let item of arr) {
        //   if (item === code) {
        //     count++
        //   }
        // }
        // for (let index in arr) {
        //   if (arr[index] === code) {
        //     count++
        //   }
        // }
        for (let i = 0; i < arr.length; i++) {
          if (arr[i] === code) {
            count++
          }
        }
        return count
      }
      // let count = fn('a')
      // console.log(count)

 3.1使用for-in遍历对象,可以枚举的属性

function fn1() {
        let stu = {
          id: 1,
          age: 20,
          name: 'tom',
        }
        for (let key in stu) {
          // console.log(typeof key)
          console.log(key, stu[key])
        }
      }
      fn1()

 4.数组去重

// function quChong() {
      //   let arr = [1, 2, 5, 5, 4, 5, 4, 6, , 1, 5, 7]
      //   let array = []
      //   for (let item of arr) {
      //     // array是否包含item元素,如果有返回true
      //     if (!array.includes(item)) {
      //       array.push(item)
      //     }
      //   }
      //   console.log(array)
      //   return array
      // }
      function quChong(arr) {
        // Set集合是ES6的语法,特点是无序,元素唯一,只能使用for-of遍历
        return [...new Set(arr)]
      }
      let arr = [1, 2, 5, 5, 4, 5, 4, 6, , 1, 5, 7]
      console.log(quChong(arr))

 5.日期的api

5.1函数的表达式

let fn = () => {
        // static 修饰的成员称静态成员
        let date = new Date()
        // now()函数是Date类的静态函数,只能使用Date.now()调用
        let now = Date.now()
        // 1970-1-1 8:00:00到现在经历的毫秒数
        console.log(now) // 1651732085403
      }
       fn()

5.2测试日期字符串参数是否合法

let fn1 = (args) => {
        // 合法数字,不合法NaN
        return !Number.isNaN(Date.parse(args))
      }
      let rt = fn1('2022/05/05')
       console.log(rt)

5.3   35天后是几号?

let fn2 = () => {
        let date = new Date()
        let day = date.getDate()
        date.setDate(day + 35)
        console.log(date)
      }
      fn2()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值