js数组语法整理

488 阅读3分钟

前言

    为了自己日后不会忘记语法,写出来整理一下,日后用起来可以查阅。

Array.forEach()

对原数组的遍历,会改变元素组。

  Array.forEach((item, index, arr) => {
    // item -> 当前元素;index -> 当前下标;arr -> 原数组
    // 处理逻辑
  })

Array.map()

对元素组的映射,返回新数组。

  const arr = [1, 2]
  const newArr = arr.map((item, index, arr) => {
    return item + 1
  })
  // console.log(newArr, [2, 3])

Array.filter()

方法用于过滤掉不符合条件的元素,返回新数组.

  const arr = [1, 2, 3, 4, 5]
  const newArr = arr.filter((item, index, arr) => {
    return item > 3
  })
  // console.log(newArr, [4, 5])

Array.every()

方法用于检测数组中所有元素是否都符合指定条件,若符合返回true,否则返回false。

  const arr = [1, 2]
  const result = arr.every((item, index, arr) => {
    return item > 1
  })
  console.log(result, false)

Array.some()

方法用于检测数组中的元素是否有满足指定条件的,若满足返回true,否则返回false

找到之后立即跳出循环

  const arr = [1, 2]
  const result = arr.some((item, index, arr) => {
    return item > 1
  })
  console.log(result, true)

Array.indexOf()

方法用于检查数组中书否存在某元素,存在返回下标,不存在返回-1但是不能检测null(不能检测数字)

  // indexof(item, start) start表示开始下标
  const arr = ['1', '2']
  const result = arr.indexOf('1')
  // 0

Array.includes()

方法用于判断是否包含某一元素,除了不能定位外(元素下标,不兼容ie8),它直接返回true或者false表示是否包含元素,对NaN一样能有有效。

  const arr = ['a', 'b']
  const result = arr.includes((item, index, arr) => {
    return item === 'c'
  })
  console.log(result, false)

for in

使用 for...in 声明来循环输出数组中的元素。(i有可能不是数字,会返回所有可枚举属性,包括继承属性,切记,尽量不要遍历对象)

  for(let i in Array) {
      console.log('item', Array[i])
  }

Array.sort()

从字面上对数组进行排序(文字数组)

  const arr = ['b', 'a', 'c']
  arr.sort()
  // ['a', 'b', 'c'] 按照ASCII表排序

从数值上对数组进行排序(数字数组)

  const arr = [2, 1]
  arr.sort((a, b) => { return a - b })
  // [1, 2]

Array.join()

将数组的所有元素组成一个字符串

  const arr = ['a', 'b']
  arr.join(';')
  // a; b

Array.concat()

将两个数组合并为一个数组

  const arr1 = ['a']
  const arr2 = ['b']
  arr1.concat(arr2)
  // ['a', 'b']

Array.find()

在数组中寻找符合条件的某个元素

找到之后跳出循环,找不到返回undefined

  const item = [1, 2, 3].find(num => num === 2)
  // item 2

Array.findIndex()

在数组中寻找符合条件的某个元素下标

找到之后跳出循环,找不到返回-1

  const index = [1, 2, 3].find(num => num === 2)
  // index 1

Object语法补充

对object对象的一些语法补充

Object.keys()

Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致。

 // Array
  const arr = ['a', 'b', 'c']
  console.log(Object.keys(arr))
 // ['0', '1', '2']
 // Object
 const obj = { 0: 'a', 1: 'b', 2: 'c' }
 console.log(Object.keys(obj))
 // ['0', '1', '2']

Object.values()

Object.values() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性值的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致。

 // Array
  const arr = ['a', 'b', 'c']
  console.log(Object.values(arr))
 // ['a', 'b', 'c']
 // Object
 const obj = { 0: 'a', 1: 'b', 2: 'c' }
 console.log(Object.values(obj))
 // ['a', 'b', 'c']

Object.assign()

Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

const object1 = {
  a: 1,
  b: 2,
  c: 3
};

const object2 = Object.assign({c: 4, d: 5}, object1);

console.log(object2.c, object2.d);
// expected output: 3 5