算法系列1--js数组排序

两个数组合并成一个数组

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

 自己研究的解法:

var a = ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'D1', 'D2']
var b = ['A', 'B', 'C', 'D']

for (var i = 0; i < b.length; i++) {
  var c = [];
  for (var j = 0; j < a.length; j++) {
    j % 2 == 1 ? c.push(j + i + 1) : ''
  }
  a.splice(c[i], 0, b[i])
}
console.log(a) //[ 'A1', 'A2', 'A', 'B1', 'B2', 'B', 'C1', 'C2', 'C', 'D1', 'D2', 'D' ]

其他的解法: 

 

let result = ["A1", "A2", "B1", "B2", "C1", "C2", "D1", "D2"].concat(["A", "B", "C", "D"]).sort((a,b)=>a.charAt(0).charCodeAt()-b.charAt(0).charCodeAt());

改造下面的代码,使之输出0 - 9,写出你能想到的所有解法。

下面的代码会输出10个10 

for (var i = 0; i< 10; i++){
	setTimeout(() => {
		console.log(i);
    }, 1000)
}

 改造后,输出0-9

for (var i = 0; i < 10; i++) {
  (
     (j) => {
      setTimeout(() => {
        console.log(j);
      }, 1000)
    }
  )(i)
}
for (let i = 0; i < 10; i++) {
  setTimeout(() => {
    console.log(i);
  }, 1000)
}
for (var i = 0; i < 10; i++) {
  setTimeout((i) => {
    console.log(i);
  }, 1000, i)
}

 

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页