数组和字符串的常用方法

34 阅读5分钟

数组

常用方法

  1. push():在数组末尾添加一个或多个元素,并返回新的数组长度。
  2. pop():删除数组的最后一个元素,并返回被删除的元素。
  3. shift():删除数组的第一个元素,并返回被删除的元素。
  4. unshift():在数组开头添加一个或多个元素,并返回新的数组长度。
  5. slice(start, end):返回一个新的数组,包含从 startend(不包括 end)的元素。
  6. splice(start, deleteCount, item1, item2,...):在指定位置添加或删除元素。
  7. concat():连接两个或多个数组,并返回一个新的数组。
  8. join(separator):将数组的所有元素连接成一个字符串,通过指定的分隔符分隔。
  9. reverse():反转数组的元素顺序。
  10. sort():对数组元素进行排序。
  11. includes(item):检查数组是否包含指定的元素,返回 truefalse
  12. indexOf(item):返回指定元素在数组中的第一个索引,如果不存在则返回 -1
  13. lastIndexOf(item):返回指定元素在数组中的最后一个索引,如果不存在则返回 -1
  14. forEach(callback):对数组的每个元素执行指定的函数。
  15. map(callback):创建一个新数组,其结果是对原数组的每个元素调用提供的函数后的返回值。
  16. filter(callback):创建一个新数组,其中包含通过提供的函数实现的测试的所有元素。
  17. reduce(callback, initialValue):对数组中的每个元素执行一个提供的 reducer 函数,将其结果汇总为单个返回值。
  18. some(callback):检查数组中是否至少有一个元素通过提供的函数实现的测试,返回 truefalse
  19. every(callback):检查数组中的所有元素是否都通过提供的函数实现的测试,返回 truefalse

循环遍历数组的方法

  1. for 循环:
for(let i = 0; i < array.length; i++) {
  // 在这里访问数组元素 array[i]
  console.log(array[i]);
}

这是最基本的循环方式。通过定义一个索引变量 i ,从 0 开始,每次循环增加 1,直到索引小于数组的长度。在循环体中,可以通过 array[i] 来访问每个元素。
2.for...of 循环:

for (let element of array) {
  // 在这里访问数组元素 element
  console.log(element);
}

for...of 循环会遍历可迭代对象(包括数组)的值。每次循环,变量 element 都会被赋值为数组中的下一个元素。

  1. forEach 方法:
array.forEach(function(element, index, array) {
  // 在这里访问数组元素 element 和索引 index
  console.log(element);
});

forEach 方法为数组的每个元素执行一次提供的函数。这个函数接受三个参数:当前元素、当前元素的索引和数组本身。

  1. map 方法:
let newArray = array.map(function(element, index, array) {
  // 对每个元素进行处理并返回新的值
  return element * 2;
});

map 方法创建一个新数组,其元素是对原数组的每个元素调用提供的函数后的返回值。

  1. filter 方法:
let filteredArray = array.filter(function(element, index, array) {
  // 根据条件返回 truefalse,决定元素是否保留
  return element > 5;
});

filter 方法创建一个新数组,其中包含通过提供的函数实现的测试的所有元素。

  1. reduce 方法:
let result = array.reduce(function(accumulator, currentValue, currentIndex, array) {
  // 对每个元素进行累积计算
  return accumulator + currentValue;
}, initialValue);

reduce 方法对数组中的每个元素执行一个提供的 reducer 函数(升序执行),将其结果汇总为单个返回值。reducer 函数接受四个参数:累计器、当前值、当前索引和数组本身。第二个参数 initialValue 是可选的,用于指定初始的累计器值。

  1. someevery也会遍历数组,但它们不一定会执行完整个数组的遍历,一旦有满足条件的元素就会终止循环操作

字符串

常用方法

  1. charAt(index):返回指定索引位置的字符。
  2. charCodeAt(index):返回指定索引位置字符的 Unicode 值。
  3. concat(str1, str2,...):连接两个或多个字符串。
  4. indexOf(searchValue, fromIndex):返回指定字符串在原字符串中首次出现的索引,如果未找到则返回 -1。
  5. lastIndexOf(searchValue, fromIndex):返回指定字符串在原字符串中最后一次出现的索引,如果未找到则返回 -1。
  6. slice(start, end):提取字符串的一部分并返回新字符串。
  7. substr(start, length):从指定位置开始提取指定长度的字符并返回新字符串。
  8. substring(start, end):提取字符串在两个指定索引之间的部分并返回新字符串。
  9. toLowerCase():将字符串转换为小写。
  10. toUpperCase():将字符串转换为大写。
  11. split(separator, limit):通过指定的分隔符将字符串分割成数组。
  12. replace(searchValue, replacement):替换字符串中的匹配项。
  13. trim():去除字符串两端的空格。
  14. startsWith(searchString, position):检查字符串是否以指定的字符串开头。
  15. endsWith(searchString, length):检查字符串是否以指定的字符串结尾。
  16. includes(searchString, position):检查字符串是否包含指定的子字符串。
  17. match(regexp):使用正则表达式在字符串中查找匹配项,并返回一个数组。
  18. search(regexp):使用正则表达式搜索字符串,并返回匹配的起始索引。

字符串截取的方法对比

  1. slice(start, end) 方法:
    • start:必需。指定开始提取字符的位置。如果为负数,则从字符串末尾开始计数(例如,-1 表示最后一个字符)。
    • end:可选。指定结束提取字符的位置(不包括该位置的字符)。如果省略,则提取到字符串末尾。如果为负数,则从字符串末尾开始计数。
let str = "Hello World";
let result1 = str.slice(0, 5); // "Hello"
let result2 = str.slice(-5); // "World"
  1. substring(start, end) 方法:
    • slice 方法类似,但 startend 不能为负数。如果为负数,会被当作 0 处理。
let str = "Hello World";
let result3 = str.substring(0, 5); // "Hello"
  1. substr(start, length) 方法:
    • start:必需。指定开始提取字符的位置。如果为负数,则从字符串末尾开始计数。
    • length:可选。指定提取的字符数量。
let str = "Hello World";
let result4 = str.substr(6, 5); // "World"
let result5 = str.substr(-5, 5); // "World"

总结:slice 方法在处理负数索引时更灵活,而 substring 方法要求索引不能为负数。substr 方法则通过指定起始位置和长度来截取字符串。