算法&数组去重(找出数组最小值或排序)

233 阅读1分钟

找出下面数组最小的那个数【12,5,8,7,9】


let min = (numbers) => {
  if(numbers.length > 2){
    return min(
      [numbers[0], min(numbers.slice(1))]
    )
} else{
    return Math.min.apply(null,numbers)
}
}
min([12,5,8,7,9])

将下面数组从小到大依次排列


let min = (numbers) => {
  if(numbers.length > 2){
    return min(
      [numbers[0], min(numbers.slice(1))]
    )
} else{
    return Math.min.apply(null,numbers)
}
}
let minIndex = (numbers) => numbers.indexOf(min(numbers))
var sort = (numbers) => {
  if(numbers.length > 2){
     let index = minIndex(numbers)
     let min = numbers[index]
     numbers.splice(index, 1)
     return [min].concat(sort(numbers))
}else{
   return numbers[0]<numbers[1] ? numbers : numbers.reverse()
}
}
sort([12,5,8,7,9])

要先定义min和minIndex

如何实现数组去重?更多方法点击

假设有数组 array = [1,5,2,3,4,2,3,1,3,4]

你要写一个函数 unique,使得

unique(array) 的值为 [1,5,2,3,4]

也就是把重复的值都去掉,只保留不重复的值。

set

 let array = [1,5,2,3,4,2,3,1,3,4]
function unique(array){
    return Array.from(new Set(array))
}
let newArr = [...new Set(array)]
console.log(newArr)
let array = [1,5,2,3,4,2,3,1,3,4]
function unique(array) {
  let s = new Set(array)
  return Array.from(s)
}
unique(array)

1.png