把俩个数组 [A1, A2, B1, B2, C1, C2, D1, D2] 和 [A, B, C, D],合并为 [A1, A2, A, B1, B2, B, C1, C2, C, D1, D2,

146 篇文章 5 订阅

看到这题第一反正就是for循环配合index即可做到,但我这种太简单显不出技术含量,看了别人写的,决定贴上学习自勉。

let a1 =  ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'D1', 'D2']
let a2 = ['A', 'B', 'C', 'D'].map((item) => {
  return item + 3
})

let a3 = [...a1, ...a2].sort().map((item) => {
  if(item.includes('3')){
    return item.split('')[0]
  }
  return item
})

这种方式也是简单,但别人用的是map,学习一下map。

map

我之前说过遍历性能上来说 for循环遍历 < for…of遍历 < forEach遍历 < for…in遍历 < map遍

 
// 1)经典的for循环:
   for(var i = 0; i < arr.length; i++){  }
// 2)for...in
   for(var i in  arr){  }
// 3) forEach
    arr.forEach(function(i){   })
// 4) map
    arr.map(function(i){   })
// 5) ES6的语法  for...of
    for(let i of arr){   }
 

forEach与map很像,来看看 forEach 和map的区别:

不同点:

map有一个返回值,这个返回值是一个和原数组长度相等的新数组;{ }里什么也不写的话,所有元素就都是undefined;{ }写了return,并且return后面的值就是新数组的元素,直接更改这个return后面的值,就可以得到我们需要的新数组

详见

数组的map和forEach用法和区别 - 来米啊 - 博客园

我看完了,觉得写的非常不错,至少我是看的明白。感谢这位博主。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值