JS数组及其常用方法

数组

检验是否为数组的方法 Array.isArray()

是数组返回:true

不是数组返回:false

 

数组中天生自带一个属性:length  代表了当前数组的长度

(JavaScript数组长度是可变的,也就是说不是固定的)

数组是一个复杂的数据类型,在比较的时候是比较的地址

console.log([] == []);  // false

 

数组的方法

对于一个方法,我们需要关注:

①调用方式,需要传递什么参数

②方法执行完成之后的返回结果是什么,有没有返回值

③关注这个方法调用完成之后,有没有改变原数组

 

栈方法:先进后出,后进先出

push():往数组的末尾添加项,参数可以为任意多个,返回修改之后原数组的长度,原数组发生了变化

var arr = [];
console.log(arr.push("king", "age", 89));    // 3
console.log(arr);    // ["king", "age", 89]

 

pop():往数组的末尾删除一项,返回被删除的那一项,原数组发生改变 arr.pop()

 

队列方法:先进先出,后进后出

push():往数组末尾添加项,参数可以为任意多个,返回修改之后的原数组的长度,原数组发生了变化  arr.push("king", "age", 89)

 

shift():从数组的最前面删除一项,返回被删除的项,原数组发生改变。

 

unshift():往数组的最前面添加元素,并且返回修改之后的数组长度,原数组发生改变。

var arr = [1, 2, 3];
var res = arr.unshift("king", {age: 18});
console.log(res, arr);    // 5  ["king", {age: 18}, 1, 2, 3]

 

reverse():将数组按下标反向排序,返回反向之后的数组,原数组发生改变。

var arr = [18, false, "", undefined, null, NaN, {}, []];
console.log(arr.reverse());    // [[], {}, NaN, null, undefined, "", false, 18]

 

contact():将多个数组进行合并,返回一个新的合并之后的数组,所有的原数组都不会发生改变。

// 将括号中的数组依次合并到arr这个数组的末尾,并且不会合并重复项
var arr = ["king", "age", 89],
    arr1 = [1, 2, 3],
    arr2 = ["hello", "前端"],
    arr3 = [1, 2, 3];
console.log(arr.concat(arr1, arr2, arr3));    // ["king", "age", 89, 1, 2, 3, "hello", "前端", 1, 2, 3]
console.log(arr, arr1, arr2, arr3);    // ["king", "age", 89]  [1, 2, 3]  ["hello", "前端"]  [1, 2, 3] 

 

排序的方法

sort():是按照unicode编码进行排序的,对于10以内的数据可以进行排序(默认是一个升序)原数组发生改变。

 

如果我们需要实现任何数字的排序,我们得在sort()方法中传递一个函数进来

var arr = [1, 9, 5, 25, 18, 23];
var res = arr.sort(function (a, b) {
    // return b - a;     //降序
    // return a - b;    //升序
});
console.log(res);

 

slice(start, end):从数组中截取下标为start到end的项,包含start 不包含end;返回截取之后的数组。当只有一个参数的时候,默认从这个位置截取到末尾;如果参数是0,相当于将原数组copy了一份(不写和这个一样)

 

将数组变成一个字符串

arr.toString()  可以将数组变成字符串,但是不能自己指定分隔符

join():将数组按照指定的连接符拼接成为字符串,返回一个拼接之后的字符串,原数组没有发生改变

 

splice() 增  删  改

经过该方法操作之后的原数组会发生改变,返回结果都是一个数组

splice(n, m, [[kx]]);
// n代表开始的下标位置
// m代表个数
// [[kx]]用来新增或者替换的元素

 

删除 返回被删除的项

splice(1, 2)  从下标为1的位置删除两项

splice(1)  从下标为1的位置开始删除到最后一项

splice(0) / splice()  其实就等于将数组剪切了一份

 

替换 arr.splice(n, m, newValue);

返回被替换的那个元素,从n处删除m个元素,并且删除的元素用newValue进行替换,并且以数组的形式返回了删除的项

posted @ 2020-12-09 22:53  Crazier_Z  阅读(113)  评论(0编辑  收藏  举报