VuePressVuePress
首页
  • 基础
  • UI
  • JavaScript
  • CSS
  • postcss
  • Vue3
  • Vue的设计与实现
  • 前端常用插件
  • PHP
  • Laravel
  • Linux
  • 线性代数
Category
AI
jiyun
Timeline
首页
  • 基础
  • UI
  • JavaScript
  • CSS
  • postcss
  • Vue3
  • Vue的设计与实现
  • 前端常用插件
  • PHP
  • Laravel
  • Linux
  • 线性代数
Category
AI
jiyun
Timeline
  • 基础知识

    • 基础知识
    • promise简介
    • promise1
    • promise2
    • 点语法和方括号语法的区别
    • 常用字符串数组过滤函数
      • split()
      • filter()
      • map()
  • 全局对象

    • 数组
    • 对象
    • 字符串
  • dom

    • HTMLElement和Node有何不同
  • 字符串

    • 字符串截取导致的BUG
  • 媒体查询

    • 媒体查询
  • WebWorker

    • Web Worker

常用字符串数组过滤方法

split()

split() 是字符串的方法,用于将字符串分割成子字符串数组:

// 基本语法
string.split(separator, limit)

参数:

  • separator:分隔符,可以是字符串或正则表达式
  • limit(可选):限制返回数组的长度

示例:

// 1. 基本使用
const path = '/manager/warehouses/create'
const segments = path.split('/')
console.log(segments) 
// ['', 'manager', 'warehouses', 'create']

// 2. 使用限制数量
const text = 'apple,banana,orange,grape'
console.log(text.split(',', 2)) 
// ['apple', 'banana']

// 3. 使用空字符串分割
const word = 'hello'
console.log(word.split('')) 
// ['h', 'e', 'l', 'l', 'o']

// 4. 使用正则表达式
const date = '2024-03-20'
console.log(date.split(/-|\//)) 
// ['2024', '03', '20']

filter()

filter() 是数组的方法,用于创建一个新数组,其中包含通过测试函数的所有元素:

// 基本语法
array.filter(callback(element, index, array))

参数:

  • callback:用于测试数组元素的函数
  • element:当前元素
  • index(可选):当前索引
  • array(可选):原数组

示例:

// 1. 过滤空值
const segments = ['', 'manager', '', 'warehouses', 'create']
const filtered = segments.filter(Boolean)
console.log(filtered) 
// ['manager', 'warehouses', 'create']

// 2. 过滤数字
const numbers = [1, 2, 3, 4, 5, 6]
const evenNumbers = numbers.filter(num => num % 2 === 0)
console.log(evenNumbers) 
// [2, 4, 6]

// 3. 过滤对象数组
const users = [
    { name: 'John', age: 25 },
    { name: 'Jane', age: 17 },
    { name: 'Bob', age: 30 }
]
const adults = users.filter(user => user.age >= 18)
console.log(adults) 
// [{ name: 'John', age: 25 }, { name: 'Bob', age: 30 }]

// 4. 使用索引和数组参数
const numbers = [1, 2, 3, 4, 5]
const filtered = numbers.filter((num, index, arr) => {
    return num > arr[index - 1] // 只保留比前一个数大的数
})
console.log(filtered) 
// [2, 3, 4, 5]

map()

map() 是数组的一个重要方法,用于创建一个新数组,其结果是对原数组中的每个元素调用提供的函数后的返回值。

// 基本语法:
array.map(callback(currentValue, index, array))

参数:

  • callback:转换函数,应用到每个元素
  • currentValue:当前处理的元素
  • index(可选):当前元素的索引
  • array(可选):原数组

示例:

// 1. 基本数字运算
const numbers = [1, 2, 3, 4, 5]
const doubled = numbers.map(num => num * 2)
console.log(doubled) 
// [2, 4, 6, 8, 10]

// 2. 字符串转换
const words = ['hello', 'world']
const upperCase = words.map(word => word.toUpperCase())
console.log(upperCase) 
// ['HELLO', 'WORLD']

// 3. 对象数组转换
const users = [
    { name: 'John', age: 25 },
    { name: 'Jane', age: 17 }
]
const userNames = users.map(user => user.name)
console.log(userNames) 
// ['John', 'Jane']

// 4. 使用索引参数
const letters = ['a', 'b', 'c']
const indexed = letters.map((letter, index) => `${index + 1}: ${letter}`)
console.log(indexed) 
// ['1: a', '2: b', '3: c']
Last Updated:
Contributors: BaronYan
Prev
点语法和方括号语法的区别