关于js数组,字符串的方法的总结

217 阅读5分钟

数组和字符串的方法

首先要明白他们公有的方法join,slice,indexOf,concat,splice

一.数组

1.增

增:arr.unshift() /push() 前增/后增

都是直接修改原有数组。

unshift()会返回数组的新长度。

push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。

2.删

删:arr.shift() /pop() 前删/后删

shift()只能删除第一个元素,返回值是被删除的元素。

pop() 方法用于删除并返回数组的最后一个元素。

要是数组为空,则返回undefined 。

3.改

改:arr.splice(开始下标,删除的长度,增加的元素,增加的元素)

splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。

splice(7,1)删除数组索引为7的位置的一个元素,splice(7,1)[0]才可以返回9;splice(7,1)直接返回的是[9].

4.截

截: arr.slice(开始下标,结束下标)

arrayObject.slice(start,end)可以和indexOf一起使用完成切割

返回一个新的数组,包含从 start 到 end (不包括该元素)

5.拼

arr.concat(元素,元素,元素)

concat() 方法用于连接两个或多个数组。也可以连接字符串。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符(也就是join后面的()来进行分隔符设置)进行分隔的。

6.复

复:forin / slice / concat / map /forEach

 注: ES5新增的复制方法都没for循环效率高

7.排

arr.reverse()逆序输出

arr.sort([a-b])该方法没有参数时按照字符编码的顺序进行排序

a-b从小到大,b-a从大到小

function sortNumber(a,b)
{
return a - b
}
document.write(arr.sort(sortNumber))

8.转

arr.toString() 转为以逗号分隔的字符串 / 转换进制

arr.join('分隔符'),转为字符串

截、拼、转不影响原数组

9.es5新增加的方法,es5的方法不影响元素组

1、indexOf(查找的元素,开始查找的下标):

从某个下标开始查找这个元素第一次出现的位置。 查不到返回-1。

2、 lastindexOf(查找的元素,下标): 从后往前查找
3、forEach() 遍历数组

forEach和map方法只能遍历数组,forin遍历数组和对象。

forEach 方法按升序为数组中含有效值的每一项执行一次callback 函数,

callback接受三个参数(currentValue,index,array)

  • currentValue

    数组中正在处理的当前元素。

  • index可选

    数组中正在处理的当前元素的索引。

  • array可选

​ 是正在操作的数组。

  • thisArg可选

    可选参数。当执行回调函数时用作 this 的值(参考对象)。

arr.forEach(callback[, thisArg]);

4、map

blog.csdn.net/liminwang03…

map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

var array1 = [1,4,9,16];
const map1 = array1.map(x => x *2);
console.log(map1);
5.reduce

**reduce()** 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。

[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)

感觉很像递归

arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])

callback里面执行数组中每个值的函数,包含四个参数:

  • accumulator

累计器累计回调的返回值; 它是上一次调用回调时返回的累积值,或initialValue(见于下方)。

  • currentValue

    数组中正在处理的元素。

  • currentIndex可选

    数组中正在处理的当前元素的索引。 如果提供了initialValue,则起始索引号为0,否则为1。

  • array可选

    调用reduce()的数组

  • initialValue可选

作为第一次调用 callback函数时的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错。

6.filter()

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

    var arr = [1,6,4,4,8,9,33];
    var list =arr.filter(function(value){
    return value >6
    })

7.some

二.字符串

1.查

charAt(index):根据 下标查找指定的字符,下标找不到时,输出空。

charCodeAt(index):根据下标查找指定的字符的编码值 。下标超出范围时,输出NAN

indexOf方法可返回某个指定的字符串值在字符串中首次出现的位置。str.indexOf("Hello")如果要检索的字符串值没有出现,则该方法返回 -1。同理有lastindexOf()

2.替

replace(旧串,新串)

替换成新的字符串, 一次只能替换一个

3.截

后面的end不截 ,substring()与 slice()substr() 方法不同的是,substring() 不接受负的参数。

substring:(start,end)

支持参数互换(3,4)(4,3),end可以省略则一直截取到最后。

substr:(start,length) 从指定位置提取length长度。
slice:(start,end) 支持负数(从右往左数,-1至-10等等)

与数组类似,第一个字符的位置为0,以此类推

4.转

toUpperCase():小写字母转大写字母

toLowerCase():大写字母转小写字母

split(分隔符,截取的长度) : 将字符串转为数组 

5.拼

直接使用加号

用join

用自己的方法。

6.拓展方法

1、字符串对象.match(正则表达式) : 如果字符串中包含了正则表达式的内容,返回数组,否则,返回null,

2、字符串对象.search(正则表达式) : 类似于indexOf(),查找正则匹配的内容在字符串中第一次出现的下标位置,如果没有找到,返回-1