Javascript

js 数组和字符串

本文主要是介绍js 数组和字符串,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Array对象

创建数组对象的两种方式

字面量方式        2、new Array()

检测一个对象是否是数组

Array.isArray() 如果返回true就是数组,false是非数组

valueOf()     返回数组对象本身

栈操作(先进后出)

       push()  在数组最后添加元素       
       pop()   在数组最后删除元素

队列操作(先进先出)

        shift()   在数组的0位置删除元素
       unshift() 在数组的0位置添加元素,原先的0下标,变成1

排序方法

reverse()   翻转数组
       sort(sortby); sortby,可选参数,规定排序顺序,必须是函数  如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

操作方法

concat()    把参数拼接到当前数组、 或者用于连接两个或多个数组
       slice(start,end)     1、从start开始截取元素,到end结束,包括start,不包括end,返回新数组,start,end是索引,

2、不会改变原始数组

splice()    1、从start开始截取元素,截取length个,,返回新数组,start是索引,length是个数

2、会改变元素的数组

位置方法

indexOf()        都是找位置 返回索引值 没有找到返回 -1,第一次出现位置

lastIndexOf()   如果没找到返回-1,元素最后一次出现的位置

上述方法只是查找顺序不一样 结果都是索引值

数组迭代方法

迭代(即是不停的代换)

1、forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数

array.forEach(function(currentValue, index))

currentValue  必需。当前元素

Index   可选。当前元素索引值

可以拿到每个数组中的值,没有返回值

迭代方法不会改变原来的值!!!!!!!!!

2、every() some()方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。

some(),every()方法的参数是一个回调函数,回调函数中的第一个参数是数组的元素,第二个参数是数组的索引

 some(),every()方法都会返回新的数组

公式: var flag1 = arr3.every(function (value, index) {

                       return value > 55;

})

              console.log(flag1);

 var flag2 = arr3.some(function (value, index) {

    return value >= 88;

  })

  console.log(flag2)

every():判断回调函数中的表达式是否全部满足,如果满足,返回值就是true,只要有一个不满足就是false

some判断回调函数中的表达式是否有一个满足,如果至少一个满足,返回值就是true

3、filter ()与map ()

filter()根据指定条件过滤元素,返回新数组 ;

map()数根据数学运算,返回新数组

//filter():根据指定条件过滤元素,返回新数组

  var new1 = arr.filter(function (value, index) {

    return value >= 33;

  })

  console.log(new1);

  //map():根据数学运算,返回新数组

  var new2 = arr.map(function (value, index) {

    return Math.pow(value, 2);

  })

清空数组

方式1 推荐
              arr = []
       方式2
              arr.length = 0
       方式3
              arr.splice(0, arr.length)

数组转化字符串

join()数组转化为字符串,以参数分割  例:join(‘’)分割所有

String对象

(1)、字符串的不可变

var str = 'abc';
str = 'hello';
// 当重新给str赋值的时候,常量'abc'不会被修改,依然在内存中
// 重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变
// 由于字符串的不可变,在大量拼接字符串的时候会有效率问题

(2)、创建字符串对象

var str = new String('Hello World');
// 获取字符串中字符的个数
console.log(str.length);

(3)、字符串对象的常用方法

字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串

字符方法
       charAt()        //获取指定位置处字符
       charCodeAt()    //获取指定位置处字符的ASCII码
       str[0]          //HTML5,IE8+支持 和charAt()等效
       2 字符串操作方法
       concat()        //拼接字符串,等效于+,+更常用
       slice(start,end)         //从start位置开始,截取到end位置,end取不到
       substring(start,end)     //从start位置开始,截取到end位置,end取不到
       substr(start,length)        从start位置开始,截取length个字符
       indexOf()       //返回指定内容在元字符串中的位置,,如果没有,返回-1;(从前往后,检索到第一个就结束)
       lastIndexOf()   //返回指定内容在元字符串中的位置,,如果没有,返回-1;(从后往前,检索到第一个就结束)
       trim()          //只能去除字符串前后的空白
       大小写转换方法
       toUpperCase()   //转换大写
       toLowerCase()   //转换小写
       search()//方法用于检索字符串中指定的子字符串,返回子字符串的起始位置
       replace(old,new) //替换字符串替换字符串 new替换old
       split() //分割字符串 返回的是一个数组。。数组的元素就是以参数的分割的

这篇关于js 数组和字符串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!