数组的常用方法(回顾)

  • 增删改
    • push *
    • unshift *
    • pop *
    • shift *
    • splice *
    • 删除数组末尾一项的4种方法
    • 向数组末尾追加项的三种方法
  • 查询和拼接
    • slice
    • concat
  • 把数组转换为字符串
    • toString
    • join

增删改

arr.push(element1,…)

定义:向数组的末尾追加元素,返回 length 新数组长度, 改变原数组
扩展:

方法:后进先出 -> push + pop
队列方法:先进先出 -> push + shift

var arr = [1,2,3];
var res = arr.push(4, 5);//5
console.log(arr);//[1,2,3,4,5]

arr.unshift(element1, …)

定义:向数组的开头追加元素,返回 length 新数组长度, 改变原数组

var arr = [1,2,3];
var res = arr.unshift(4, 5);//5
console.log(arr);//[5,4,1,2,3]

arr.pop()

定义:删除数组的最后一项,返回删除元素的值, 改变原数组

注意:数组为空时,返回undefined

var arr = [1,2,3];
var res = arr.pop();//3
console.log(arr);//[1,2]
console.log([].pop());//undefined

arr.shift()

定义:删除数组的开头一项,返回删除元素的值, 改变原数组

注意:数组为空时,返回undefined

var arr = [1,2,3];
var res = arr.shift();//1
console.log(arr);//[2,3]
console.log([].pop());//undefined

arr.splice(start,deleteCount,element1,…)

定义:实现数组指定位置的增加,修改,删除,并返回被移除的内容,改变原数组

参数1:修改开始的位置
参数2:需要移除的数组元素个数,可选,省略大于后面的元素数会移除后面所有元素
剩余参数:要添加的数组元素,可选
注意:没有移除数组元素时,返回[ ]空数组

var arr = [1,2,3];
//增加
var res = arr.splice(3,1,4);//[]
console.log(arr);//[1,2,3,4]
//修改
var res1 = arr.splice(0,2,5,6);//[1,2]
console.log(arr);//[5,6,3,4]
//删除
var res2 = arr.splice(1,1);//[6]
console.log(arr);//[5,3,4]
var res3 = arr.splice(1);//[3,4]
console.log(arr);//[5]

删除数组末尾一项的四种方法

方式1:arr.length–

方式2:arr.pop()

方式3:arr.splice(arr.length - 1)

方式4:delete arr[arr.length - 1]

向数组末尾追加项的三种方法

方式1:arr.push(x)

方式2:arr[arr.length] = x

方式3:.arr.splice(arr.length, 0, x)

查询和拼接

arr.slice(start,end)

定义:数组的查询,并返回查询的新数组

参数1:查询开始的位置,为负数,表示数组中的倒数第几个元素开始
参数2:查询终止的位置,可选,省略大于后面的元素数会移除后面所有元素,为负数,表示数组中的倒数第几个元素终止,为小数,则会先进行向下取整

注意:arr.slice(0) 实现浅克隆

var arr = [1,2,3,4]
arr.slice(1);//[2,3,4]
arr.slice(1,2);//[2]
arr.slice(-2,-1);//3
arr.slice(-2,0);//[]

arr.concat(value1,…)

定义:实现数组拼接,返回拼接后的新数组
参数:数组或值,不传参数则相当于浅克隆

var arr = [1,2,3]
arr.concat(4);//[1,2,3,4]
arr.concat('a');//[1,2,3,'a']
arr.concat([4,5,6]);//[1,2,3,4,5,6]
arr.concat();//[1,2,3]

把数组转换为字符串

arr.toString()

定义:把数组转换为字符串

var arr = [1,2,3];
arr.toString();//'1,2,3'

扩展:用于展平数组

// 方法1:使用字符串的toString
function test(arr){
    return arr.toString().split(',')
}
//	问题:  1.所有数据类型转换为字符串,如'function Date() {...}','()=>{...}'
//			2.undefined,null,[] 会转换成空字符串
//			3.Number,String,Boolean类型会被转成初始值
//			4.对象转化为 '[object Object]'

arr.join()

定义:把数组转换为字符串

参数一:分隔符,可选,默认逗号分割

var arr = [1,2,3];
arr.join();//'1,2,3'
arr.join('*');//'1*2*3'

排序和排列

arr.reverse()

定义:把数组倒过来排序,返回排列后的新数组

扩展:实现reverse方法
const reverse = (nums, start, end) => {
    while (start < end) {
        const temp = nums[start]
        nums[start] = nums[end]
        nums[end] = temp
        start++
        end--
    }
    return nums
}
reverse([1,2,3,4,5,6,7,8],0,4)//[5, 4, 3, 2,1, 6, 7, 8]

你可能感兴趣的:(#,js基础,javascript,前端,开发语言)