JavaScript中的数组与字符串

本文最后更新于:1 个月前

字符串

字符串是一种基本数据类型

获取字符串长度的length属性

使用字符串的length属性可以查看当前字符串中字符的数量,双字符也会按照单字符来计算

1
str.length

字符串拼接 concat方法

concat方法用于连接(合并/拼接)字符串,使用方法为:

1
2
3
4
let str = "Hello";
let str2 = str.concat("world","qwq");
console.log(str);
console.log(str2);

字符串也可以使用加号运算符来拼接(常用)

1
2
let str = "hello"+"world";
console.log(str);

字符串切片方法 slice

切片方法,顾名思义,就是将字符串切成某一段的一片

它接受两个参数,第一个参数是开始的位置(必需),第二个参数是结束的位置

当传入负数时,按照从末尾开始算,-1表示倒数第一位

1
2
3
let str = "一二三四五六七八";
let strSplice = str.slice(0,6);
console.log(strSplice);//一二三四五六

删除左右空格的trim方法

trim方法会返回一个新字符串,删除了左右的所有空格
实际开发中会用到这个方法进行用户输入数据的处理

将字符串打碎成数组的split方法

1
2
3
4
let str = "一二三四五六七八";
let engStr = "hello world you qwq";
console.log(str.split(""));//'一', '二', '三', '四', '五', '六', '七', '八'
console.log(engStr.split(" "));//'hello', 'world', 'you', 'qwq'

字符串的大小写转换方法 toLowCase toUpperCase

返回一个新字符串

1
2
3
4
const sentence = 'The quick brown fox jumps over the lazy dog.';

console.log(sentence.toUpperCase());
console.log(sentence.toLowCase());

数组

数组是一种复合数据类型,在数组中可以存储多个不同类型的数据

数据中存储的是有序的数据,对象存储的是无序的数据,数组中每个数都有一个唯一的索引

  • 索引是一组大于等于0的整数

  • 创建数组

    • 可以通过Array(),也可以通过数组字面量来创建数组
  • 向数组中添加元素

    • 数组[索引] = 元素
  • length属性

    • 获取数组中元素的数量,实际值为数组索引+1,length值可以修改,可以使用length向数组末尾添加元素
1
2
3
4
5
6
7
8
9
10
11
const arr = new Array;

const arr2 = [1,2,3,4,5]//数组字面量

arr[0] = 22;

typeof(arr)//object

arr2.length //5

arr[arr.length] = 5 //末尾添加

数组的迭代

JS中的数组有自己的迭代方式,不需要我们手动使用for循环遍历

  • forEach方法:

forEach()方法没有返回值

1
2
3
4
let arr = [1, 2, 3, 4, 5, 6];
arr.forEach((item) => {
console.log(item);
});
  • map方法

map方法是带有返回值的方法,并且map方法比forEach()要快,他会返回一个新的数组

1
2
3
4
5
6
let arr = [1, 2, 3, 4, 5, 6];
let arrNew = arr.map((item) => {
return item + 1;
});
console.log(arr);//1,2,3,4,5,6
console.log(arrNew);//2,3,4,5,6,7

数组中查找某个元素的位置indexOf

indexOf(item,start)方法可以返回数组中某个指定的元素位置。该方法将从头到尾地检索数组,看它是否含有对应的元素,开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。如果在数组中没找到指定元素则返回 -1。

1
2
3
4
let fruits = ["Banana", "Orange", "Apple", "Mango"];
let index = fruits.indexOf("Apple");
console.log(index);

数组的过滤方法filter

fliter方法用于对数组进行过滤,他会创建一个新数组,新数组中的元素是通过检查数组中符合条件的所有元素。

1
2
3
4
5
var arr = [2,3,4,5,6]
var result = arr.filter(function (number) {
return number > 3
})
console.log(result);

数组转换成字符串方法join

join()可以将一个数组中的元素连接成一个字符串,参数是我们指定的一个字符作为连接符

1
2
3
const arr = ["aa","bb"]
let result = arr.join("")//aabb
let result = arr.join("@")//aa@bb

截取数组方法slice()

参数:截取的起始位置(包括),截取的结束位置(不包括)

第二个参数可以省略,如果省略则一直截到最后

索引可以写负值

  • 如果两个参数全部省略,则可以对数组进行浅拷贝

1
2
3
arr = ["Tom", "Bob", "Andy", "John"]

result = arr.slice(0,2)//"Tom","Andy"

浅拷贝和深拷贝

浅拷贝

  • 通常对对象的拷贝都是浅拷贝

  • 浅拷贝顾名思义,只对对象的浅层进行拷贝

  • 如果对象中存储的数据是原始值,那么拷贝的深浅不重要

  • 浅拷贝只会对对象本身进行复制,不会复制对象中的属性,或元素

1
2
const arr = [{name:"Tom"},{name:"bob"}]
const arr2 = arr.slice()//浅拷贝

深拷贝

  • 不仅复制对象本身,还复制对象中的属性和元素

  • 通常情况下不使用深拷贝

1
2
const arr3 = structuredClone(arr)//深拷贝


JavaScript中的数组与字符串
https://blog.seasalt-haiyan.top/2024/03/05/JavaScript中的数组与字符串/
作者
Xu Haoyang
发布于
2024年3月5日
更新于
2024年3月5日
许可协议