数组操作

304 阅读1分钟

数组交并补集 及 去重

let a = [1, 2, 3]
let b = [2, 3, 4]

let intersect = a.filter(item => new Set(b).has(item)) // [ 2, 3 ] 交集

let union1 = [...new Set([...a, ...b])] // [ 1, 2, 3, 4 ] 并集 或 数组去重
let union2 = Array.from(new Set([...a, ...b])) // [ 1, 2, 3, 4 ] 并集 或 数组去重

let difference = a.filter(item => !new Set(b).has(item)) // [1] b在a中的补集
function union (array) {
  let out = []
  for (var i = 0; i < array.length; i++) {
    if (out.indexOf(array[i]) == -1) {
      out.push(array[i])
    }
  }
  return out
}
function union (array) {
  for (var i = 0; i < array.length; i++) {
    for (var j = i+1; j < array.length; j++) {
      if (array[i] == array[j]) {
        array.splice(j, 1)
        j--
      }
    }
  }
  return array
}

排序(升序)

冒泡排序:
function sort (array) { 
  var val
  for (var i = 0; i < array.length-1; i++) { 
    for (var j = 0; j < array.length-1-i; j++) {
      if (array[j] > array[j + 1]) { 
        val = array[j+1]
        array[j+1] = array[j]
        array[j] = val
      } 
    }
  }
  return array
}

最大值

function maxValue (array) {
  var max = array[0]
  for (var i = 1; i < array.length; i++) {
    if (max < array[i]) {
      max = array[i]
    }
  }
  return max
}