常用JS数组方法总结。

534 阅读5分钟

我从如下几个方面去作总结:方法名,读音,方法作用,返回值,是否多个参数,是否为新数组,改不改变原有数组。

什么!!!读音?这这这?这个中文斜音对照英文单词。。。。。(不要叫!我英语贼烂出此下下之策)
前端小白(正在找实习工作的前端小白,即将进入这个行业的小白)希望得到大家的意见与建议!如果你夸我!你就是我好大哥。 0da4347632d3e5451f99327d8830047e.jpeg

1.arr.push()(这里我试试引入一下链接)

朴实(pu四声shi四声),从尾部添加元素,可以添加多个参数,返回值为添加完后的数组的长度,创建一个新的数组,改变原数组。

let arr = [1,2,3,4,5,6,7,8,99];
arr.push(1,2)
console.log(arr)           //1,2,3,4,5,6,7,8,9,1,2
console.log(arr.push(1))      //返回值 10
let arr1 = arr.push(1)        
console.log(arr === arr1)     //false  看是不是原数组

2.arr.unshift()

昂晒富特,从头部添加元素,可以有多个参数,返回值是添加完后的数组的长度,返回新的数组,改变原数组。

let arr = [1,2,3,4,5,6,7,8,99];
arr.unshift(1,2);
console.log(arr);       //1,2,1,2,3,4,5,6,7,8,9
console.log(arr.unshift()); //11
let arr1 = arr.unshift();
console.log(arr1 === arr);  //false

1.arr.pop()

泡破,删除最后一个元素,不可有多个参数,返回值是删除的元素,返回新数组,改变原数组。

let arr = [1,2,3,4,5,6,7,8,99];
arr.pop(1,2);
console.log(arr);
console.log(arr.pop());     //99
let arr1 = arr.pop;
console.log(arr1 === arr);  //false

2.arr.shift()

谁福特,从前面删除一个元素,返回值是删除的元素,返回新的数组,改变原数组。

let arr = [1,2,3,4,5,6,7,8,99];
arr.shift();
console.log(arr);           //[2, 3, 4, 5, 6, 7, 8, 99]
console.log(arr.shift());   //2
let arr1 = arr.shift()
console.log(arr1 === arr);  //false

4.splice(i,n)

斯布莱斯,从前面数删除从i(索引值)开始之后的那个元素到n的元素(不包含n位).返回值是删除的元素,返回新的数组,修改原数组。

let arr = [1,2,3,4,5,6,7,8,99];
arr.splice(0,2);   //3,4,5,6,7,8,99 去掉了两个
console.log(arr);               //[3, 4, 5, 6, 7, 8, 99]
console.log(arr.splice(0,3));   //返回值 [3, 4, 5]
let arr1 = arr.splice(0,3);
console.log(arr1 === arr);      //false

1.arr.concat()

康凯特,连接数组(往后排列添加),返回值为链接后的新数组,可以添加多个参数,返回新数组,不改变原有数组。

let arr = [1,2,3,4,5,6,7,8,99];
let arr1 = ['数字','字母']
let arr3 = ['true','false']
let arr4 = [111,222,33]
let arr2 = arr1.concat(arr,arr3,arr4)
console.log(arr2);  //['数字', '字母', 1, 2, 3, 4, 5, 6, 7, 8, 99, 'true', 'false', 111, 222, 33]
console.log(arr.concat(arr1))  //[1, 2, 3, 4, 5, 6, 7, 8, 99, '数字', '字母']
let num = arr1.concat(arr3)
console.log(num === arr1);   //false
console.log(num === arr3);   //false
console.log(arr1 === arr2);  //false
console.log(arr1);           //['数字', '字母']

2.arr.split()

斯布雷特,把一个字符串分割成字符串数组,第一个参数是以字符串内的什么来分隔第二个参数是分隔出几位(默认全部分隔),返回值是分隔后的数组,返回新的数组,不改变原数组。

let string = "这是一个字符串";
let arr1 = string.split('');
console.log(arr1);                  //['这', '是', '一', '个', '字', '符', '串']
let string1 = '1-2-3-4-5'
console.log(string1.split('-'));    //['1', '2', '3', '4', '5']
console.log(string.split('',3));    //['这', '是', '一']
console.log(string);                //这是一个字符串

3.arr.sort()

搜特,将数组进行排序,返回值是排好的数组,参数可以是一个方法或者方法名,将数组转换为字符串进行比较函数排序(将字符串转为acsll),修改原数组。

let arr1 = [1,2,3,11,33,4,36]
console.log(arr1.sort());        //[1, 11, 2, 3, 33, 36, 4]
let number = arr1.sort(function(a,b){return b-a}); //数字降序
console.log(number);             //[36, 33, 11, 4, 3, 2, 1]
let letter = ['A','a','f','G'];   
console.log(letter.sort());      //['A', 'G', 'a', 'f']
let arr2 = arr1.sort()
console.log(arr2);              //[1, 11, 2, 3, 33, 36, 4]
console.log(arr1);              //[1, 11, 2, 3, 33, 36, 4]

4.arr.reverse()

瑞wei斯,将数组反转,没有参数,返回值是反转后的数组,不是新数组,改变原数组。

let arr = [1,2,3,4,5,6,7,8,99];
console.log(arr.reverse()); //[99, 8, 7, 6, 5, 4, 3, 2, 1]
let arr1 = arr.reverse()
console.log(arr1);          //[1, 2, 3, 4, 5, 6, 7, 8, 99]
console.log(arr);           //[1, 2, 3, 4, 5, 6, 7, 8, 99]
console.log(arr1 === arr);  //true  终于有一个是原数组了

5.arr.slice(i,n)

取出索引值i到索引值n的数组不包含n索引的值返回值是取出来的数组,返回新数组,不改变原有数组。

let arr = [1,2,3,4,5,6,7,8,99];
console.log(arr.slice(0,3));    //[1, 2, 3]
let arr1 =  arr.slice(0,3)
console.log(arr1);              //[1, 2, 3]
console.log(arr1 === arr);
console.log(arr);               //false

6.arr.indexOf()

从前往后找某个指定的字符串值在字符串中首次出现的位置(索引值)。若有相同的则返回第一个查到的索引值,若不存在则返回 -1,一个参数。

arr1 = [1,2,3,4,1,2,5,6]
console.log(arr1.indexOf(3));  //2

7.arr.lastIndexOf()

从后往前找某个指定的字符串值在字符串中首次出现的位置(索引值)。若有相同的则返回第一个查到的索引值,若不存在则返回 -1,一个参数。

arr1 = [1,2,3,4,1,2,5,6]
console.log(arr1.indexOf(3));  //2

8.Array.from()

将伪数组变成数组,就是只要有length的就可以转成数组。 -- ES6

let obj = {
     '1':1,
     '2':'你好',
     length:3
}
let arr2 = Array.from(obj)
console.log(arr2);          //[undefined, 1, '你好']

9.Array.of()

转换成数组 --ES6

let arr1  = '你好'
let arr2 = Array.of(arr1)
console.log(arr2);  //['你好']

10.isArray() 判断是否是数组,返回值为布尔值。

let arr = [1,2,3,4,5,6,7,8,99];
console.log(Array.isArray(arr));    //true

2021/11/28周日今天没事窝在宾馆里研究了一天,五点半了,干饭!