js数组方法总结

var arr=[1,214,65,432,22];
//会改变自身的方法


1.
// arr.copyWithin(0,-1)   (start[,end =this.length])

//【有兼容性问题】
// 用于在数组内的替换操作,即替换元素和被替换元素都是数组内的元素,start为被替换的元素,end为替换后的元素
// 参数皆为整数,允许start,end为负数(倒数第n个)


2.
// arr.fill("dsc",0,arr.length)    (value [,statrt = 0[, end = this.length]])
// 将数组中指定区间的所有元素的值,都替换成value
// start,end允许为负值,同上


3.
//  array.pop()
    // 删除一个数组中的最后一个元素,并且返回这个元素

    // array.push(element1, ...elementN)
    // 添加一个或多个元素到数组的末尾,并返回数组新的长度

    // array.reverse()
    // 前后颠倒数组中元素的位置,第一个元素会成为最后一个

    // array.shift()
    // 删除数组的第一个元素,并返回这个元素

    // array.unshift(element1, ...elementN)
    // 在数组的开头插入一个或多个元素,并返回数组的新长度


4.
    // arr.sort(function(a, b){            (function(a,b){})
    //        return a-b;
    // })
    // 对数组的元素做原地的排序,并返回这个数组。sort可能不稳定,默认按照字符串的unicode码位点排序

    // 记a和b是两个将要被比较的元素:

    // 如果函数function(a, b)返回值小于0, 则a会排在b之前
    // 如何函数返回值等于0, 则a和b的相对位置不变(并不被保证)
    // 如果函数返回值大于0,则a会排在b之后
    // 比较函数输出结果必须稳定,否则排序的结果将是不确定的



5.
     //arr.splice(0,5,12)             //(start, deleteCount[, item1[, item2...])
    // 在任意的位置给数组添加或删除任意个元素(拼接),返回被删除的元素组成的数组,没有则返回空数组


    // start: 开始操作的索引
    // deleteCount:要移除的数组元素的个数
    // itemN:要添加进数组的元素,如果不指定,则splice只删除数组元素



//  不会改变自身的方法


1.  
    // var a = arr.concat("aaa",2);
    // 将传入的数组或非数组值与原数组合并,组成一个新的数组并返回

    // 注意:concat方法在拷贝原数组的过程中,
    // 对象引用(非对象直接量):concat方法会复制对象引用放到组合的新数组里,原数组和新数组中的对象引用都指向同一个实际的对象,所以,当实际的对象被修改时,两个数组也同时被修改

    // 举个例子
    // var arr2=["a","b",{dsc:"test",lqy:"sb"}]
    // var a=arr.concat(arr2);
    // console.log(a);
    // setTimeout(function()
    // {
    //     arr2[2].lqy="niubi";
    //     console.log(a);
    // },5000)


    // 字符串和数字(是原始值,而不是包装原始值的string和number对象):concat方法会复制字符串和数字的值放到新数组里


2.
    //  console.log(arr.includes(1)) 
    // [实验性质,es7,可能会改变或删除]
    // 用来判断当前数组是否包含某指定的值,如果是,则返回true,否则false



3.
    // console.log(arr.join(""))    
    // 将数组中的所有元素连接成一个字符串(默认用逗号作为分隔符,如果separator是一个空字符串,那么数组中的所有元素将被直接连接)
    // 如果元素是undefined或者null,则会转化成空字符串


4.       
    // console.log(arr.slice(0,2))             // ([begin = 0 [, end = this.length - 1]])
    // 把数组中一部分的浅复制(shallow copy)存入一个新的数组对象中,并返回这个新的数组
    // 不修改原数组,只会返回一个包含了原数组中提取的部分元素的一个新数组
    // 具体拷贝规则同concat函数



5.
    // array.toString()
    // 返回一个字符串,该字符串由数组中的每个元素的toString()返回值经调用join()方法连接(由逗号隔开)组成。




6.        
   //  console.log(arr.toLocaleString())
    // 返回一个字符串表示数组中的元素。数组中的元素将使用各自的toLocaleString方法转化成字符串,这些字符串将使用一个特定语言环境的字符串(例如逗号)隔开




7.

    //  console.log(arr.indexOf(214))               //(searchElement[, fromIndex = 0])
    // 返回指定元素能在数组中找到的第一个索引值,否则返回-1
    // fromIndex可以为负,表示从倒数第n个开始(此时仍然从前向后查询数组)
    // 使用“严格相等”(===)进行匹配


    // array.lastIndexOf(searchElement[, fromIndex = arr.length - 1])
    // 返回指定元素在数组中的最后一个的索引,如果不存在则返回-1, 从数组的后面向前查找
    // 同上





//  遍历数组的方法

1.   
    // arr.forEach((v, i, a) =>    //第一个参数是回调函数,第二个参数是this指向
    // {
    //     console.log(v,i,a);
    //     arr[i]="dsc";
    //     },object)
    // 让数组的每一项都执行一次给定的函数
    // v表示当前项的值,i表示当前索引,a表示数组本身
    // forEach遍历的范围在第一次调用 callback前就会确定。调用forEach后添加到数组中的项不会被 callback访问到。如果已经存在的值被改变,则传递给 callback的值是 forEach遍历到他们那一刻的值。已删除的项不会被遍历到。


    // Array.prototype.myForEach=function(func)
    // {
    //     var _arr=this;
    //     var len=_arr.length;
    //     var par=arguments[1]||window;
    //     for(var i=0;i<len;i++)
    //     func.apply(par,[_arr[i],i,_arr]);
    // }


2.
    // var a= arr.entries();
    // console.log(a.next().value)
    // console.log(a.next().value)
    // console.log(a.next().value)
    // console.log(a.next().value)
    // console.log(a.next().value)
    // 返回一个Array Iterator对象,该对象包含数组中每一个索引的键值对



3.
    // var a= arr.every((v, i, a)=>{return v>=100})
    // 对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 false,如果发现这个元素,every 将返回 false,如果回调函数对每个元素执行后都返回 true ,every 将返回 true。
    // 它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略




    // arr.some()
    // 对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 true,如果发现这个元素,some 将返回 true,如果回调函数对每个元素执行后都返回 false ,some 将返回 false。
    // 它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略。


4.
    // var a= arr.filter((v, i, a) => {return v>=100})
    // 使用指定的函数测试所有元素,并创建一个包含所有测试通过的元素的新数组
    // callback函数返回一个布尔值,true即通过测试
    // callback只会在已经赋值的索引上被调用,对于那些已经被删除或者从未被赋值的索引不会被调用
    // 不会改变原数组


5.
    //  var a =arr.find((v, i, a) =>{return v>=100})
    // 【有兼容性问题目前】
    //  返回数组中满足测试条件的第一个元素,如果没有满足条件的元素,则返回undefined



6.
    //  var a = arr.keys()
   // 返回一个数组索引的迭代器(类似于array.entries()方法)



7.
   //  var a = arr.map((v, i, a) => {return v>=100})
    // 返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组
    // map 不修改调用它的原数组本身(当然可以在 callback 执行时改变原数组)



8.
    // var a = arr.reduce((p,v,i,a)=>{return p+v})   //数组所有和相加        //第二个参数为第一次调用的返回值,不能改变this的指向
    // 该方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值
    // callback参数:
    // previousValue:上一次调用回调返回的值,或者是提供的初始值(initialValue)
    // currentValue: 数组中当前被处理的元素
    // index: index
    // array: 调用的数组
    // 如果 initialValue 在调用 reduce 时被提供,那么第一个 previousValue 等于 initialValue ,并且currentValue 等于数组中的第一个值;如果initialValue 未被提供,那么previousValue 等于数组中的第一个值,currentValue等于数组中的第二个值。

    // var arr2=[[1,2],[3,4],[5,6]];
    // var a = arr2.reduce((a,b)=>{return a.concat(b)})  //二维数组扁平化




    // arr.reduceRight()
    // 使用同上,与reduce()的执行方向相反
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园的建设目标是通过数据整合、全面共享,实现校园内教学、科研、管理、服务流程的数字化、信息化、智能化和多媒体化,以提高资源利用率和管理效率,确保校园安全。 智慧校园的建设思路包括构建统一支撑平台、建立完善管理体系、大数据辅助决策和建设校园智慧环境。通过云架构的数据中心与智慧的学习、办公环境,实现日常教学活动、资源建设情况、学业水平情况的全面统计和分析,为决策提供辅助。此外,智慧校园还涵盖了多媒体教学、智慧录播、电子图书馆、VR教室等多种教学模式,以及校园网络、智慧班牌、校园广播等教务管理功能,旨在提升教学品质和管理水平。 智慧校园的详细方案设计进一步细化了教学、教务、安防和运维等多个方面的应用。例如,在智慧教学领域,通过多媒体教学、智慧录播、电子图书馆等技术,实现教学资源的共享和教学模式的创新。在智慧教务方面,校园网络、考场监控、智慧班牌等系统为校园管理提供了便捷和高效。智慧安防系统包括视频监控、一键报警、阳光厨房等,确保校园安全。智慧运维则通过综合管理平台、设备管理、能效管理和资产管理,实现校园设施的智能化管理。 智慧校园的优势和价值体现在个性化互动的智慧教学、协同高效的校园管理、无处不在的校园学习、全面感知的校园环境和轻松便捷的校园生活等方面。通过智慧校园的建设,可以促进教育资源的均衡化,提高教育质量和管理效率,同时保障校园安全和提升师生的学习体验。 总之,智慧校园解决方案通过整合现代信息技术,如云计算、大数据、物联网和人工智能,为教育行业带来了革命性的变革。它不仅提高了教育的质量和效率,还为师生创造了一个更加安全、便捷和富有智慧的学习与生活环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值