js 数组和字符串

数组

  • 数组是大多数语言中最常见的一种数据结构,它是一个有序的值列表
创建数组的方式
  • 创建数组的方式大致可以分为两种:字面量创建数据和使用构造函数创建数组。示例如下:
    1.字面量创建数组
    let arr =[ ];
    2.构造函数创建数组
    let arr = new Array();
    无论以什么样的方式创建的数组,它的数据类型始终是Object
  • 数组的赋值
    给数组赋值的方法也非常简单,不过可以分为声明的时候就赋值和直接赋值
    1.先声明再赋值
    let arr=[]; arr[0]=1; arr[1]=2;
    2.声明时直接赋值
    let arr=[1,2,3,4,5];
    数组的下标是从0开始的,可以把数组看成是一个指针,按下标查看元素就相当于看偏移量。
    如果访问的下标没有给数组进行赋值返回的值是undefined进行补充。
    由于JavaScript是门动态的语言,所以JavaScript的数组可以存放任意类型的数据类型。
  • 访问数组中的元素
    通过数组的下标,直接访问存储在数组中相应位置的参数。如下:
    let arr=[1,2,3,4,5] console.log(arr[0])//1
    除了这种常规的访问方式,还可以使用变量的方式进行访问。如下:
    let arr=[1,2,3,4,5]
    let i = 0;
    console.log(arr[i])//1
  • 删除元素
    我们可以使用delete运算符来删除数组中的某一个元素。如下:
    let arr = [1,2,3,4,5]
    delete arr[2];删除数组中的第三个元素
  • 结构数组
    所谓结构,就是将一个复杂类型的数据进行分解为一个普通类型数据
    let arr=[1,2,3]
    let [a,b,c]=arr;
    console.log(a,b,c)1,2,3
    如果不想要结构的元素可以使用逗号来跳过
    let arr=[1,2,3]
    let [a,,c]=arr;
    console.log(a,,c)1,3
数组的相关方法
添加和删除方法

数组可以表现得像(是一种LIFO(Last-In-First-Out)数据结构,特点是先进后出)一样。
js中专门提供了push()pop()方法,用来实现类似栈的行为。

let arr=[];
let i =arr.push('one','two');
console.log(arr)//['one','two'];
console.log(i)//2

let j = arr.pop();
console.log(arr)//['one']
console.log(j)//two

push()方法推入元素的时候是从右往左推入

let arr=[];
let i =arr.push('one','two');
//只有一个入口
//  -------------
// | one  two 
//  -------------

队列方法的特点是先进先出FIFO,因为有两个出口。
在js中提供了shift()方法,该方法可以去除数组左边的第一个元素并且返回该元素。
利用shift()push()方法就可以实现从右往左的队列。

//从右往左的队列
let arr=[];
arr.push(1,2,3);
let item=arr.shift();
console.log(item); //1
console.log(arr)//2,3

如果要实现从右往左的队列,可以使用unshift()方法和pop()方法的配合。unshift()方法的作用是在数组开头推入一个元素。

//从左往右的队列
let arr=[];
arr.push(1,2,3);
let item=arr.pop();
console.log(item); //3
console.log(arr)//1,2
总结:

push()pop()可以算是一组方法,作用分别是在数组的尾部推入和删除元素。而unshift()shift()就相反,作用分别是在数组的头部推入和删除元素。
推入的时候可以一次性推入多个元素,返回的是一个新数组的长度。删除则只能删除一个,返回的是被删除的那个元素。

操作方法

操作方法里面介绍三种,分别是concat(),slice()splice()

  • concat()
    concat()方法是先创建当前数组的一个副本,然后将收到的参数添加到副本的末尾,最后返回新构建的数组,而原来的数组不会被改变
let arr = [1,2,3];
let arr2=arr.concat("one","two");
console.log(arr)//[1,2,3];
console.log(1,2,3,"one","two");
  • slice()
    slice()可以接收一个或者两个参数,代表返回项的起始和结束位置。
    1个参数:代表起始位置,返回从指定的起始位置到数组末尾的所有项目。
    2个参数:代表从指定的起始位置到指定的末尾位置之间的项,但是不包含结束位置的项目。
    slice()方法不会影响到原始数组
let arr=[1,2,3,4,5];
//一个参数
let i=arr.slice(1);
console.log(i)//[2,3,4,5]
console.log(arr)//[1,2,3,4,5];
//两个参数
let j=arr.slice(1,3);
console.log(j)//[2,3]
console.log(arr)//[1,2,3,4,5];

如果传入的是负数,则用数组长度加上该数来确定相应的位置

let arr=[1,2,3,4,5];
//一个参数
let i=arr.slice(-1);//等价于4
console.log(i)//[2,3,4,5]
console.log(arr)//[1,2,3,4,5];
//两个参数
let j=arr.slice(-1,-3);//等价于4,2
console.log(j)//[undifind,undifind];
console.log(arr)//[1,2,3,4,5];
  • splice()
    splice()这个方法,可以对数组进行三种操作:删除、插入和替换相当于是增删改操作都可以用这个方法来实现。
    **删除:**可以删除任意数量的元素,只需要指定两个参数:参数的第一项位置和要删除的个数。
let arr=[,1,2,3,4,5,6,7,8,9,10];
//从下标为3的元素开始删除,删除5个元素
//将删除的元素返回给i
let  i = arr.splice(3,5)
console.log(i)//[4,5,6,7,8]
console.log(arr)//[1,2,3,9,10]

**插入:**可以向任意位置插入任意数量的元素,只需要提供三个参数:起始位置,0(要删除的项目),要插入的项目。

let arr=[,1,2,3,4,5,6,7,8,9,10];
//从下标为3的元素之前开始插入
let i = arr.splice(3,0,"one","two");
console.log(i)//[]
console.log(arr)//[1,2,3,"one","two",4,5,6,7,8,9,10]

**替换:**替换的原理在于插入的时候同时进行删除,这样就实现了替换功能。

let arr=[,1,2,3,4,5,6,7,8,9,10];
//从下标为2的元素之前开始插入
let i = arr.splice(3,0,"one");
console.log(i)//[]
console.log(arr)//[1,2,3,"one",4,5,6,7,8,9,10]

数组的排序

排序涉及到两个方法:reverse()sort()
reverse用于反转数组项的顺序,使用该方法会改变原来数组的顺序
sort()是按照升序排列数组的每一项,但是使用该方法排序时首先会调用每个元素的toString()转型方法,然后比较得到字符串。即使都是数值,该方法比较的也是字符串
在这里插入图片描述

位置方法

JavaScript提供了两个位置方法:indexOf()lastIndexOf()
这两个方法都接收两个参数,要查找的项目和查找的起点位置索引。区别在于一个是从数组开头开始找,一个是从数组末尾开始找。如果没有找到就返回-1。
在这里插入图片描述
还需要注意的是,这两个方法查找时使用的是全等进行比较
在这里插入图片描述
includes()用于查看数组里面是否包含某个元素,包含返回true,否则返回false
在这里插入图片描述

字符串
  • 使用双引号和单引号包含任意长度的文本称之为字符串
访问特定字符

有两个访问字符串特定字符的方法,分别是charAt()charCodeAt()

  • charAt()
    接收一个数字参数,找到对应下标的字符是什么。
    在这里插入图片描述
  • charCodeAt()
    接收一个数字参数,找到对应下标的字符编码是什么。
    在这里插入图片描述
    fromCharCode()这个方法基本上和charCodeAt()执行的是相反的操作。
    在这里插入图片描述
字符串操作方法

concat()用于将一个或多个字符拼接起来,返回拼接得到的新字符串。
原字符串不会产生改变,拼接后的字符串以返回值的方式返回。
在这里插入图片描述
虽然concat()可以用于拼接字符串,但是还是使用+运算符来拼接字符串的方式更加简便,使用的情况更多一些。
slice()和数组的slice()方法相似,接收一个或两个参数,截取字符串。
在这里插入图片描述
substr()方法在字符串中抽取从开始下标开始的指定数目的字符,效果和slice()方法基本一样。但是还是有一定的区别,区别就在于第二个参数,如下:
在这里插入图片描述
在这里插入图片描述
substring()方法用于提取字符串中介于两个指定下标之间的字符。和前面的方法也是非常相似,但是还是有一些不同之处,如下:
在这里插入图片描述
在上面的示例中,传入两个参数的时候,好像substring()方法和slice()方法效果是一样的,那么区别在什么地方呢?

区别就在于参数为负数的时候,如下:

在这里插入图片描述

字符串位置方法

indexOf()lastIndexOf()这两个方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置,没有找到就是返回-1,两个方法的区别就在于一个是从前面开始找,一个是从后面开始找。
在这里插入图片描述
字符串对象中还存在一个和indexOf()方法很类似的方法,为search()方法。该方法也是用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回-1。

示例如下:
在这里插入图片描述
除了传入子字符串,还可以传入一个正则表达式,如下:
在这里插入图片描述

查找是否包含字符

includes()方法用于查看是否包含某个字符,如果包含返回true,否则返回false。
在这里插入图片描述

检测开始字符和结束字符

startsWith()endsWith()方法分别用于检测开始字符和结束字符。

let str="Hello World";

console.log(str.startsWith("H"))//ture
console.log(str.startsWith("z"))//false
去除字符串空白方法

trim()方法用于去除字符串两端空表,这个方法在表单验证里面经常使用。它会创建一个字符串副本,和三处前置以及后缀的所有空格。
在这里插入图片描述
除此之外,还要trimLeft()trimRight()方法,分别删除左边或者末尾的空格

重复字符串

repeat()方法接收一个参数,为字符串重复的次数。返回值为字符串重复次树的新字符串。
在这里插入图片描述

字符串大小写转换方法

有四个方法toLowerCase()toLocaleLowerCase()toUpperCase()toLocaleUpperCase()
一般用的比较多的是toUpperCase()toLocaleUpperCase()
示例如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值