当前位置: 首页 > news >正文

做海鲜团购网站/独立站怎么搭建

做海鲜团购网站,独立站怎么搭建,上海地区做旧物回收的网站,游戏开发论坛JS合并两个数组的方法 我们在项目过程中,有时候会遇到需要将两个数组合并成为一个的情况。比如: var a [1,2,3];var b [4,5,6]; 有两个数组a、b,需求是将两个数组合并成一个。方法如下: 1、concatjs的Array对象提供了一个叫conc…

JS合并两个数组的方法

我们在项目过程中,有时候会遇到需要将两个数组合并成为一个的情况。比如:
    var a = [1,2,3];var b = [4,5,6];
有两个数组a、b,需求是将两个数组合并成一个。方法如下:
  • 1、concat
    js的Array对象提供了一个叫concat()方法,连接两个或更多的数组,并返回结果。
    var c = a.concat(b);//c=[1,2,3,4,5,6];

这里有一个问题,concat方法连接a、b两个数组后,a、b两个数组的数据不变,同时会返回一个新的数组。这样当我们需要进行多次的数组合并时,会造成很大的内存浪费,所以这个方法肯定不是最好的。

  • 2、for循环

    大概的思路是:遍历其中一个数组,把该数组中的所有元素依次添加到另外一个数组中。直接上代码:

    for(var i in b){a.push(b[i]);
    }

    这样的写法可以解决第一种方案中对内存的浪费,但是会有另一个问题:丑!这么说不是没有道理,如果能只用一行代码就搞定,岂不快哉~

  • 3、apply
    函数的apply方法有一个特性,那就是func.apply(obj,argv),argv是一个数组。所以我们可以利用这点,直接上代码:
    a.push.apply(a,b);

调用a.push这个函数实例的apply方法,同时把,b当作参数传入,这样a.push这个方法就会遍历b数组的所有元素,达到合并的效果。

这里可能有点绕,我们可以把b看成[4,5,6],变成这样:

    a.push.apply(a,[4,5,6]);

然后上面的操作就等同于:

    a.push(4,5,6);

这样就很清楚了!

  另外,还要注意两个小问题:

  1)以上3种合并方法并没有考虑过a、b两个数组谁的长度更小。

  所以好的做法是预先判断a、b两个数组哪个更大,然后使用大数组合并小数组,这样就减少了数组元素操作的次数!

  2)有时候我们不希望原数组(a、b)改变,这时就只能使用concat了。

 

上面总结了下数组的常用方法,然后数组的去重也就简单易懂了;

1、取出两个数组的不同元素

1 getArrDifference(arr1, arr2) {
2  
3     return arr1.concat(arr2).filter(function(v, i, arr) {
4  
5         return arr.indexOf(v) === arr.lastIndexOf(v);
6  
7     });
8  
9 },

 eg:ES6语法有更简洁方法可参考

 


2、取出两个数组的相同元素

 1 getArrEqual(arr1, arr2) {
 2     let newArr = [];
 3     for (let i = 0; i < arr2.length; i++) {
 4         for (let j = 0; j < arr1.length; j++) {
 5             if(arr1[j] === arr2[i]){
 6                 newArr.push(arr1[j]);
 7             }
 8         }
 9     }
10     return newArr;
11 },

 

转载于:https://www.cnblogs.com/myfate/p/10511661.html

http://www.jmfq.cn/news/4969549.html

相关文章:

  • 合肥网站搜索优化/百度q3财报2022
  • 什么网站程序可以做抽奖页面/谷歌seo优化推广
  • 广西建设工程质检安全网站/如何做网页制作
  • 早期做的网站支持现在的网速吗/营销策划是做什么
  • app在线制作网站/怎么注册百度账号
  • 用vs做网站后台/网站搜索引擎优化方法
  • 微商/宁德seo培训
  • 东莞长安网站推广公司/微信客户管理系统
  • 网站开发销售员/semifinal
  • wordpress 分类目录树/石家庄seo管理
  • 百度公司给做网站吗/交易平台
  • 婚纱网站怎么做/百度推广开户渠道
  • 深圳设计公司上市成功有几家/陕西整站关键词自然排名优化
  • 无锡自助做网站/中国搜索引擎市场份额
  • 石景山青岛网站建设/世界十大搜索引擎及地址
  • 网站开发有哪些模块/seo需要掌握什么技能
  • 菠菜网站建设条件/百度高级搜索首页
  • 外贸网站 服务器/品牌整合营销推广
  • 出国越南做网站8000保底/网络媒体有哪些
  • 网站建设整合营销/抖音seo运营模式
  • 个人网站有什么用/seo技巧分享
  • 金融网站怎么做/google国际版入口
  • 产品介绍网站源码/东莞做网站的公司吗
  • 环评怎么在网站做公示/网络安全培训最强的机构
  • 做网站有那几种末班/如何在百度推广自己的产品
  • 怎样在百度上做网站/新产品推广方式有哪些
  • 做任务的正规网站/中企动力做网站推广靠谱吗
  • 珠海网站制作服务/微信软文案例
  • 武汉那些网站做家教的/网站建设建站在线建站
  • nba最新排名情况/seo优化神器