数组常用的方法

数组的一些方法

##ES5

push() 往数组的尾部添加一个或者多个元素,返回一个新数组 会修改原数组

pop() 删除数组尾部的最后一个元素,不接受参数,返回删除掉的元素(Nuber类型的数字)

unshift() 在数组头部添加一个或者元素,最后返回添加后的数组长度length(Nuber类型的数字)

shift() :删除数组头部的第一个元素,后面的元素自动往前顶替,返回删除掉的元素(Nuber类型的数字)

delete运算符能删除指定下标位置的元素,删除后的元素为空位元素,删除数组length保持不变

var arr2 = [1,2,3,4];
delete arr1[2];//删除指定下标的值,当前的值为空,所以数组变成了空位数组 长度不变
console.log(arr1);//[1,2,'',4] length =4

concat() 合并操作 这个方法可以跟随多个参数,能够把传递的所有参数按顺序添加到数组的尾部 返回一个新数组

var a = [1,2,null];var b = [3,undefined,4];var c = [5,'a',6]
var arr= a.concat.(b,7,8,c);
console.log(arr) // [1,2,null,7,8,3,undefined,4,5,'a',6]

#######splice() 截取数组 会修改原数组,会返回删除掉的元素组成的数组

var arr1 = [1,2,3,4,5,6,7];
console.log(arr1.splice(4));//[5,6,7] 传一个参数时则是删除对应下标元素自身到数组末尾,最后返回删除掉的元素数组[5,6,7]
console.log(arr1.splice(1,3));//[2,3,4]  传一个参数时可以看成截取数组,本质时删除,

传递三个以上或多个参数的情况

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EAgplGiI-1606986280643)(C:\Users\86173\Desktop\心得体会\imsge\屏幕截图 2020-11-15 193841.png)]

slice() 仅能够截取数组中指定区段的元素,并返回指定区段元素组成的新数组,不会修改原数组

reverse() 方法能够颠倒数组元素的排列顺序,该方法不需要参数 ,改变原数组,不创建新数组

sort() 接收一个函数作为参数,并按照条件进行排序

toString()和toLocalString()都是把数组转换成字符串,主要区别看代码

var arr = ["1.00",22222245678989,3,4,"a"];
console.log(arr.toLocaleString());//1.00  ,22,222,245,678,989  ,3,4,a
console.log(arr.toString());//1.00 ,22222245678989  ,3,4,a

join() 方法可以把数组转换为字符串,不过它可以指定分隔符,调用join方法时传参,

var arr = ['1',2,'c',4,5,null]
console.log(arr.join())//不传参时 1 1,2,c,4,5, 数组中有null就是空 length=6
console.log(arr.join("-"))//  1-2-c-4-5-
console.log(arr.join(""))//12c45

isArray() 判断某个值是否是数组

var  a = "123", b = [6,2,3,4];
console.log(Array.isArray(a));//false
console.log(Array.isArray(b));//true

#####every()方法检测是否全部符合

every() 和forEach()用法一样不同的是最终返回的是布尔值 ;根据条件有一个不满足条件则返回false 则every()方法停止执行最终返回false,除非全部返回true时every()方法才会返回true (全部为真则为真)

#####some()检测是否存在

some()和every()方法用法相同,但是最终返回布尔值的条件有所不同 ,只要有一个元素只要满足指定的条件则最总结果返回true(一真即真)

every() & some() 案列

//every方法 检测数组中元素的值是否都在指定的范围内,返回值用一个对象设置
var obj = {max:20,min:10};
var arr = [12,13,19];
var isScope = arr.every(function(item){
    if(typeof item !== "number"){
        return false
    }else{
    //this指向第二参数obj
    return item>=this.min && item <=this.max
    }
},obj)
//some方法 
var arr = [18,19,20,21,30,11,14,19,40];b={max:18}
var isTrue = arr.some(function (item,index,array) {
    return item < this.max;
},b)

for/in 方法

var arr = ['a','b','c',' ','e']
for(var j in arr){
    console.log(j,arr[j]);//a b c e  直接跳过空元素
}

Object.keys() 方法

var arr = ["a","b","c",,"d"];
console.log(Object.keys(arr));//["0", "1", "2", "4"]

##ES6

Array.from() 把伪数组转换成数组(可以使用数组的方法)

Array.of() 将一组数字转换成数组 弥补Array的不足

let oLis = document.getElementsByTagName("li");//伪数组
console.log(Array.from(oLis));//oLis [li,li,li,li]
let arr1 = Array.of(1, 2, 3, 4);
console.log(arr1);[1,2,3,4]

copyWithin() 方法接收3个参数:该方法不仅可以改变原数组,还可以返回一个新数组;新数组和原数组一摸一样

​ 第一参数代表从该下标开始替换数据,包括自身也被替换,如果为负值,表示倒数length

​ 第二 个参数代表从该下标位置开始读取数据,默认为 0。如果为负值,表示从末尾开始计算length,如果不写代表替换到末尾

​ 第三个参数代表该下标位置前一个停止读取数据,默认等于数组长度。如果为负值,表示从末尾开始计算。

let arr = [1, 2, 3, 4, 5, 6, 7, 8];
//从下标4开始读取一直读取到下标6前面一个,然后从下标0开始替换元素
var a = arr.copyWithin(0, 4, 6);//0 代表下标0 ; 4代表下标4  6代表下标6
console.log(a,arr);//[5, 6, 3, 4, 5, 6, 7, 8]

fill() 填充数组

​ 用于空数组的初始化非常方便。数组中已有的元素,会被全部抹去。

​ 还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。

let arr2 = [1, 2, 3, 4, 5, 6, 7, 8];
//从下标1开始替换到下标2前面一个,替换为7
const a=['a', 'b', 'c'].fill(7, 1, 2)
sonsole.log(a)//['a', 7, 'c']

find() 数组实例方法,用于找出第一个符合条件的数组成员,返回值就是这第一个符合自定义筛选条件为true的数组成员

findIndex()和find用法原理一摸一样不同的时返回值时下标

let arr4 = [1,'t', "undefined", 0, "e"];
let result = arr4.find(function (item, index, arr) {
    return typeof item == "string"
})
console.log(result); // t

flat() 拉平数组

let arr = [1, 2, [3, 4]]; console.log(arr.flat(Infinity))

entries() 方法

const arr1 = ["a", "b", "c", "d", "e"];
const iter = arr1.entries(); //返回的是一个iterator(遍历器对象)对象遍历器对象有一个next方法,可以依次遍历iterator中的内容
 console.log(iter.next());1//done:false   value [0 : 'a'] 
	...
 console.log(iter.next());5
 console.log(iter.next());6//done:true   value unedfined
 	...
 for (let i of arr1.entries()) {
     console.log(i) //[key : value] = [0 : 'a'] 
 }

keys() 返回的是下标

let arr3 = ["a", "b", "c", "d", "e"];
for (a of arr3.keys()) {
    console.log(a);//返回的是下标 0,1,2,3,4,5
}

values() 返回的当前的值value

let arr3 = ["a", "b", "c", "d", "e"];
for (item of arr3.values()) {
    console.log(item); // a b c d e
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值