数组array
学习一个方法的原则:
- 看字面意思 方法是干什么的.
- 看参数
- 看返回值
- concat()
合并数组
0个或多个参数
返回值 返回新的数组. (数组中的方法有浅拷贝也有深拷贝)
深拷贝方法
例子:
var arr=[2,3];
var arr1=[‘hello‘,‘world‘]
var as=arr.concat(arr1)
as.push(56)
console.log(as)
浅拷贝:返回的新的数组,发生改变会影响原来数组的数组,这叫浅拷贝.
深拷贝:返回的新的数字发生改变,原来的数组不会跟着改变,这叫深拷贝.
- constructor()
构造器
指向对象的父类
- Copywithin()
- Entries()
- Every()
检测数组中的元素是否都满足某个条件,都满足返回true, 有一个不满足返回就是false;
参数,第一个是回调函数,第二个是数值对象(改变函数中的this指向)
返回值是true和false
var arr=[12,23,46,8,36,17,19];
//看这个数组中的元素都大于18
var as=arr.every(function(item,index){
//返回时true保留,返回值是false不保留
return item>18;
})
console.log(as)
- Fill()
- Filter()
对数组中元素进行过滤,将符合条件的元素保留,并返回构成一个新的数组
参数 第一个参数是回调函数,第二个是数值对象(用来修改函数中的this指向)
返回值是过滤后的数组
深拷贝
var arr=[12,23,46,8,36,17,19];
//保留所有大于18的元素
var as=arr.filter(function(){
//返回时true保留,返回值是false不保留
return item>18;
})
console.log(arr)
- Find()
- Findindex()
- Flat()
- Flatmap()
- Foreach()
数组中的每个元素都执行一次回调函数,没有返回值,改变原数组.
参数第一个是回调函数 第二个是数值对象(可省略)
没有返回值
浅拷贝
跟for原理一样
第二个参数可以用来修改函数中的this
var arr=[12,23,56]
var as=arr.forEach(function(value,index,a){
console.log(a[0]=45)
})
console.log(arr)
- Includes()
- Indexof()
- Join()
将数组中的所有元素放入一个字符串
参数 一个分隔符 默认是逗号
var arr=[1,2,8,9,10]
var as=arr.join(" ")
console.log(as)//1 2 8 9 10
- Keys()
- Lastindexof()
- Map
通过函数处理数组的每个元素,并返回处理后的结果,构造一个新的数组,不影响元素组
俩个参数第一个是函数,第二个是元素值(可省略)
函数的参数 有三个 第一个是当前元素 第二个是当前元素的索引 第三个是省略
返回的是处理后的新的数组
深拷贝
var name=‘lisi‘
console.log(window)
var obj={name:‘lisi‘}
var arr=[12,56,23]
var as=arr.map(function(value,index){
console.log(this)//window
return value+10;
},obj)
// console.log(as)
Map第二个参数的作用
- 省略或者填null,undefined,函数类的this是window
- 如果填了,函数了的this就指向这个参数
Var a 将变量存到内存中,有变量提升有作用域。也相当于给window加了个a属性
A 只相当于给window加了个a属性
- Pop
在数组的结尾处删除数组中的最后一个元素
参数 没有参数
返回值 被删除的那个元素
var arr=[1,2,8,9,10]
var as=arr.pop()
console.log(as)//10
- Push
在数组的结尾处添加一个新的元素
参数 0个或多个 就是新元素
返回值 添加元素后新数组的长度
var arr=[1,2,8,9,10]
var as=arr.push(7)
console.log(as)
- Reduce
Reduce
将数组元素计算作为一个值 一般用于迭代
参数 第一个参数是回调函数 第二个参数是初始值(可选)
返回值
var arr=[1,2,3,4,5,6,7,8,9,10]//
var as=arr.reduce(function(init,item){
//init是上一次函数执行后的返回值 默认从第二个开始 此时init是第一个元素
//如果想让它从第一个元素开始执行reduce添加第二个参数 初始值就是第二个参数
// console.log(init)
return init+item;
})
console.log(as) //55
- Reverse
- Reduceright
- Shift
删除数组前面第一个元素
返回值删除的那个元素
var arr=[1,2,8,9,10]
var as=arr.shift()
console.log(as)//1
- Slice
截取数组
参数 2个参数number 起始位置 结束位置
返回值 截取后的新的数组
深拷贝
var arr=[12,23,34,45,56,67]
var as=arr.slice(0,8)
as[0]=‘hello‘
console.log(as);//(6) ["hello", 23, 34, 45, 56, 67]
- Some
判断数组中的元素 是否有符合条件的,只要有符合的返回就是true,都不符合返回时false
参数 第一个是回调函数 第二个是数值对象(改变函数中this指向)
返回值是true和false
var arr=[12,23,46,8,36,17,19];
//看这个数组中的元素都大于18
var as=arr.some(function(item,index){
//返回时true保留,返回值是false不保留
return item<18;
})
console.log(as)
- Sort
- Splice
从数组中添加或删除或更改数组中的元素
参数 第一个参数,起始位置,第二个参数,删除个数,第三类是添加的新元素
返回值 返回删除的元素所构成的新数组
var arr=[12,23,34,45,56,67]
var as=arr.splice(1,2)
console.log(arr);//(4) [12, 45, 56, 67]
- Tolocalestring
- Tostring
将数组转化为字符串
没有参数
返回值 转换后的字符串
var arr=[1,2,8,9,10]
var as=arr.toString()
console.log(as)//1,2,8,9,10
- Unshift
在数组前面添加新元素
参数 0个或多个
返回值 新数组的长度
var arr=[1,2,8,9,10]
var as=arr.unshift("hello")
console.log(as)//1
- Values
- IsArray() 它是Array这个类身上的方法
判断一个对象是否是数组
参数 1个
返回值 true和false
var arr=[]
var as=Array.IsArray(arr)
console.log(as)
具有拷贝功能的方法
1.concat slice map filter
------------恢复内容结束------------
------------恢复内容结束------------
js 数组
原文:https://www.cnblogs.com/yryx/p/11831407.html