看到这题第一反正就是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用法和区别 - 来米啊 - 博客园
我看完了,觉得写的非常不错,至少我是看的明白。感谢这位博主。