问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数组函数有哪些

发布网友 发布时间:2022-05-15 14:45

我来回答

2个回答

懂视网 时间:2022-05-15 19:06

数组的一些方法

javascript的数组是个非常熟悉不过的类型,而且有着非常强大的功能,但并不是没有前端学习的人都可以熟练掌握它,下面就来说一下数组的一些方法

  • 数组去重

    (1)给一个数组arr=[1,2,3,3,4],该如何去重?

  • es6里面有一个新的数据结构Set var newArr=new Set(arr);

  • es5方法是声明一个新数组obj,遍历arr,查看其中元素是否在新数组中存在,代码如下:

    var newArr = [];
    for (var i = 0; i < arr.length; i++) {
     if(newArr.indexOf(arr[i]) === -1){
     newArr.push(arr[i]);
     }
    }
    console.log(newArr); //[1,2,3,4];
  • Array.forEach

    foreach是对数组中每个元素执行一次给定函数,但是原数组不变,无返回值

     var arr = [1,2,3,4];
     arr.forEach(function(item, index, origin){
     item += 1;
     console.log(item);//2,3,4,5
     })
     console.log(arr);//[1,2,3,4]
  • Array.map

    map是对数组中每个元素执行一次给定函数,原数组不变,返回新数组

     var arr = [1,2,3,4];
     var newArr=arr.map(function(item, index, origin){
     return ++item;
     })
     console.log(newArr);//[2,3,4,5]
  • Array.filter

    filter是对数组中每个元素执行一次给定函数,原数组不变,返回符合条件的新数组

     var arr = [1,2,3,4];
     var newArr=arr.filter(function(item, index, origin){
     return item>2;
     })
     console.log(newArr);//[3,4]
  • Array.reduce

    reduce是第一个参数是一个函数,该函数的参数为上一次执行函数结果pre和目前元素的值和索引,通常用于求数组之和,第二个参数是在第一次执行函数是的pre的值,如果没有该参数则将第一个值当做pre的值

     var arr = [1,2,3,4];
     var res=arr.reduce(function(pre, cur, curIndex, origin){
     console.log(curIndex);//1,2,3
     return pre + cur;
     })
     console.log(res);//10
    
     var res=arr.reduce(function(pre, cur, curIndex, origin){
     console.log(curIndex);//0,1,2,3
     return pre + cur;
     }, 5)
     console.log(res);//15
  • Array.every

    every是对数组中每个元素执行一次给定函数,如果有一个结果为false,则返回false;

     var arr = [1,2,3,4];
     var res = arr.every(function(item, index, origin){
     return item > 2;
     })
     console.log(res);//false
  • Array.some

    some与every相对,是对数组中每个元素执行一次给定函数,如果有一个结果为true,则返回true;

     var arr = [1,2,3,4];
     var res = arr.some(function(item, index, origin){
     return item > 2;
     })
     console.log(res);//true
  • 将类数组转换为数组

  • es6中提供了Array.from的方法

  • es5中可以使用 Array.prototype.slice.call(arr)的方法

  • 热心网友 时间:2022-05-15 16:14

    concat() 连接两个或更多的数组
    join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
    pop() 删除并返回数组的最后一个元素
    push() 向数组的末尾添加一个或更多元素,并返回新的长度
    unshift() 向数组的开头添加一个或更多元素,并返回新的长度
    shift() 删除并返回数组的第一个元素
    reverse() 颠倒数组中元素的顺序
    slice(start,end) 从某个已有的数组返回选定的元素
    sort() 对数组的元素进行排序
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    华为p7支持法语操作系统? 大白鲨HD6750 1GB GDDR5白金版这个显卡怎么样? 请高手们看看我的配置,加装显卡精影HD6670和HD6750哪个比较合适点... 蓝宝石HD 6750 1GB GDDR5白金版基本参数 ...HD5770 HD6750 HD6670 这几个显卡哪个好一些?大神们帮帮忙 蓝宝HD6750 1GB GDDR5白金版重要参数 ...是蓝宝石 HD6670 1G DDR5 白金版 HD6770 1G DDR5 白金版 HD6750 1G... 蓝宝石: HD6750/1G 黄金版和HD6670 1GB GDDR5白金版哪个好点啊?我的... 如何理解“从众”心理是一把“双刃剑”。 领动用5W30还是用5W40啊 我想一部三星或者苹果手机,请问在哪个网站能够查询出各个手机的性能和价格?谢谢回答。 谁知道一些可以买便宜手机(价格低得离谱)的网站? 这个粉盒和联想2441粉盒通用吗 最具权威的手机报价网站是那个 哪些空调的蜂鸣器是多音阶? 美的空调的蜂鸣器太响了,能不能可以调节的? 请问买手机去什么网查价比较准。。。 有没有根据条件筛选手机的网站? 海尔空调蜂鸣器为什么长响 有什么网站可以筛选手机功能的吗? 请问网上有没有好的手机筛选平台?好几年前使用友人的,可以根据个人喜欢的功能筛选,现在好像关闭了。 期权投资协议书有法律效益吗? 小公司,要给骨干员工搞股权激励,给些虚拟股份、期权等,让其享受分红。需具体方案、拟个协议什么的,谢 瓷砖和Pvc用什么胶粘? 从网页上面复制的文字,粘贴在word中,整篇文字都有方框,怎么删掉方框啊 word文档中文字有方框,如何去掉 松针土与泥炭哪个好 求助,金毛串拉布拉多出来的性格温顺,聪明 金毛犬不纯会笨些吗 金毛狗草狗杂交品种是这样的吗?聪明吗? 三星2240打印机用什么硒鼓 请问像中关村在线手机列表中,按条件选择后,筛选出相应结果的网页如何实现? 很多网站都有类似功能 如果苹果比桃好梨不如橙子那么梨一定比讨好如果梨比苹果好的话正确吗 苹果,香蕉,梨,橙子,猕猴桃,选两种的话,哪两个最好? 苹果梨和橙子哪个含糖高 一个苹果等于两个桃子的重量,两个苹果的重量大于三个梨子,请排列苹果梨子桃的重量 桔子苹果梨桃子哪个不是同类 为什么说苹果和梨的重量减梨和橘子的重量就是苹果比橙子的重量呢? 如何才能让自己的在微信群里不显示啊? 怎样群里才能不显示 如何让自己的在微信群里不显示? 吃水果有讲究么 我一天之内又吃橙子和苹果会有关系么?拜托各位了 3Q 微信群怎么隐藏 在微信群里不想显示出怎么操作? 怎样在微信群里设置让别人看不到自己的? 怎么知道微信群里的故意隐藏的人的 微信群看不到群里人的是怎么回事呢? 硒鼓报销属于哪一类 如何消除微信群里某人的 工商银行信用卡我只是提交了申请 然后办卡进度显示开户成功 然后申请进度也点不进去 这是什么情况?