数组
检验是否为数组的方法 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进行替换,并且以数组的形式返回了删除的项