首页 > 编程语言 > 详细

js 数组

时间:2019-11-10 20:14:53      阅读:70      评论:0      收藏:0      [点我收藏+]

 

数组array

  学习一个方法的原则:

  1. 看字面意思  方法是干什么的.
  2. 看参数
  3. 看返回值
  4. concat()

       合并数组

0个或多个参数

返回值 返回新的数组.  (数组中的方法有浅拷贝也有深拷贝)

深拷贝方法

 例子:

  var arr=[2,3];
  var arr1=[‘hello‘,‘world‘]
  var as=arr.concat(arr1)
   as.push(56)
  console.log(as)

浅拷贝:返回的新的数组,发生改变会影响原来数组的数组,这叫浅拷贝.

深拷贝:返回的新的数字发生改变,原来的数组不会跟着改变,这叫深拷贝.

  1. constructor()

      构造器

指向对象的父类

  1. Copywithin()
  1. Entries()
  2. Every()

   检测数组中的元素是否都满足某个条件,都满足返回true, 有一个不满足返回就是false

参数,第一个是回调函数,第二个是数值对象(改变函数中的this指向)

返回值是truefalse

 

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)
  1. Fill()
  2. 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)

 

 

  1. Find()
  2. Findindex()
  3. Flat()
  4. Flatmap()
  5. Foreach()

  数组中的每个元素都执行一次回调函数,没有返回值,改变原数组.

  参数第一个是回调函数 第二个是数值对象(可省略)

没有返回值

浅拷贝

for原理一样

第二个参数可以用来修改函数中的this

 

var arr=[12,23,56]
var as=arr.forEach(function(value,index,a){
console.log(a[0]=45)
})
console.log(arr)
  1. Includes()
  2. Indexof()
  3. Join()

     将数组中的所有元素放入一个字符串

     参数 一个分隔符 默认是逗号

    

 var arr=[1,2,8,9,10]
var as=arr.join(" ")
console.log(as)//1 2 8 9 10
  1. Keys()
  2. Lastindexof()
  3. 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第二个参数的作用

  1. 省略或者填nullundefined,函数类的thiswindow
  2. 如果填了,函数了的this就指向这个参数

Var a  将变量存到内存中,有变量提升有作用域。也相当于给window加了个a属性

   A   相当于给window加了个a属性

  1. Pop

在数组的结尾处删除数组中的最后一个元素

参数 没有参数

返回值 被删除的那个元素

  

var arr=[1,2,8,9,10]
var as=arr.pop()
 console.log(as)//10
  1. Push

   在数组的结尾处添加一个新的元素

参数 0个或多个 就是新元素

   返回值 添加元素后新数组的长度

 

var arr=[1,2,8,9,10]
var as=arr.push(7)
 console.log(as)
  1. 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
  1. Reverse
  2. Reduceright
  3. Shift

删除数组前面第一个元素

返回值删除的那个元素

 

var arr=[1,2,8,9,10]
var as=arr.shift()
 console.log(as)//1
  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]
  1. Some

   判断数组中的元素 是否有符合条件的,只要有符合的返回就是true,都不符合返回时false

   参数 第一个是回调函数  第二个是数值对象(改变函数中this指向)

   返回值是truefalse

  

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)
  1. Sort
  2. Splice

从数组中添加或删除或更改数组中的元素

参数 第一个参数,起始位置,第二个参数,删除个数,第三类是添加的新元素

返回值  返回删除的元素所构成的新数组

 

   var arr=[12,23,34,45,56,67]
   var as=arr.splice(1,2)
   console.log(arr);//(4) [12, 45, 56, 67]

 

  1. Tolocalestring
  2. Tostring

将数组转化为字符串

没有参数

返回值  转换后的字符串

 

var arr=[1,2,8,9,10]
var as=arr.toString()
 console.log(as)//1,2,8,9,10
  1. Unshift

   在数组前面添加新元素

参数  0个或多个

返回值 新数组的长度

  

var arr=[1,2,8,9,10]
var as=arr.unshift("hello")
 console.log(as)//1
  1. Values
  2. IsArray() 它是Array这个类身上的方法

 判断一个对象是否是数组

参数 1

返回值 truefalse

 

var arr=[]
var as=Array.IsArray(arr)
 console.log(as)

 

具有拷贝功能的方法

 1.concat slice map filter

 

 

------------恢复内容结束------------

------------恢复内容结束------------

js 数组

原文:https://www.cnblogs.com/yryx/p/11831407.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!