js-数组、字符串

171 阅读3分钟

这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战

数组

数组的创建

1、利用数组字面量

var arr=[1,2,3];

2、利用new Array

var arr = new Array();

var arr = new Array(2);  //数组长度为2,但都是空值

var arr = new Array(2,3); //创建的数组里面有两个元素2和3

检测是否为数组

var arr = [];
arr instanceof Array ; //若为数组返回true 否则返回false
                       //这个方法也可以确定是不是其他类型
//H5新增的方法ie9才支持
Array.isArray(arr);    //返回true 或者 false

添加或者删除数组

1、push()在数组末尾添加一个或者多个元素
返回值为新数组的长度

var arr = [1,2,3];
arr.push(4,5);
arr.push(5);

2、unshift()在数组的开头添加一个或多个元素
返回值为新数组的长度

var arr = [1,2,3];
arr.ubshift(1,3);
arr.unshift(1);

3、pop()删除数组末尾一个元素 返回值是删除元素

var arr = [1,2,3];
arr.pop();

4、shift()删除数组首元素 返回的是删除元素

arr.shift();

反转数组

arr.reverse();

冒泡排序

arr.sort();

但是sort会出现问题,因为sort排序方法为先看第一位再看第二位,比如12,4,67,1,排序后会成为1,12,4,67,所以得这样写

arr.sort(fuction(a,b) {
    return a-b;//升序排列
        //return b-a;//降序排列
    } );

返回数组索引号

var arr = [1, 2, 3, 4];
arr.indexOf(1);//返回该数组元素第一次出现的索引号
arr.lastIndexOf(1);//从后往前查找,相当于找到最后一次出现的

数组转换成字符串

1、toString

var arr = [1,2,3];
arr.toString(); //输出结果为1,2,3

2、join(分隔符)

var arr = [1,2,3];
arr.join(*); //输出为1*2*3

字符串

基本包装类型

  • 对象才有属性和方法,那么字符串这个简单数据类型怎么会有属性?
  • 基本包装类型:把简单数据类型包装为复杂数据类型
var str = 'er';
var temp = naw String('er');
str = temp;
temp = null;

字符串不可变性

  • 定义一个字符串变量,改变其内容,实际上会新开辟出一个空间

根据字符返回位置

str.indexOf(元素); //返回第一个
str.indexOf('要查找的字符',[起始位置])   //起始位置可有也可无
str.lastIndexOf('要查找的字符',[起始位置]) 

根据索引返回字符

str.charAt(索引);
str.charCodeAt(索引号); //返回索引号字符的ASCII码, 目的:判断用户按下了哪个键
str[index];  //h5新增的

字符串拼接

  1. concat
str.concat(str1,str2...)  
  1. substr('截取的起始位置','截取几个字符')
  2. slice('截取的起始位置','截取的终止位置')//终止位置取不到
  3. substring('截取的起始位置','截取的终止位置')//终止位置取不到,但是不接受负值

替换字符串(把字符串中的某个变成另一个)

var arr = 'andyandy';
str.replace('a','b');  //把a替换成b,只会替换第一个

字符串转换成数组

split('分隔符');

var str2 = 'red, pink, blue';
str2.split(',');

var str3 = 'red&pink&blue';
str.split('&');

//返回结果为['red','pink','blue']