美文网首页
js数组操作

js数组操作

作者: _theFeng | 来源:发表于2019-03-21 11:30 被阅读0次

扁平化n维数组

const flatten=(arr)=>{
  while(arr.some((item)=>Array.isArray(item))){
    arr=[].concat(...arr)
  }
  return arr;
}
console.log(flatten([1,23,[343,[567,4]]]))
ES10
const flatten=arr=>arr.flat(Infinity)
console.log(flatten([1, 23, [343, [567, 4]]]))

排序(除sort)

冒泡排序
Array.prototype.bubleSort=function () {
    let arr=this,
        len = arr.length;
    for (let outer = len; outer >= 2; outer--) {
      for (let inner = 0; inner <= outer - 1; inner++) {
        if (arr[inner] > arr[inner + 1]) {
          //升序
          [arr[inner], arr[inner + 1]] = [arr[inner + 1], arr[inner]];
          console.log([arr[inner], arr[inner + 1]]);
        }
      }
    }
    return arr;
  }
[1,2,3,4].bubleSort() //[1,2,3,4] 
选择排序(简洁明了)
Array.prototype.selectSort = function () {
  let arr = this,len = arr.length;
  for (let i = 0, len = arr.length; i < len; i++) {
    for (let j = i, len = arr.length; j < len; j++) {
      if (arr[i] > arr[j]) {
        [arr[i], arr[j]] = [arr[j], arr[i]];
      }
    }
  }
  return arr;
}
console.log([1, 3, 3, 4,2].selectSort()) //[1,2,3,4]

最大值

// Math.max(10, 20);   //  20
Math.max(...[1,2,3,4]) //4
Math.max.apply(this,[1,2,3,4]) //4
[1,2,3,4].reduce( (prev, cur,curIndex,arr)=> {
 return Math.max(prev,cur);
},0) //4

判断是否包含该值

//ES6
[1,2,3].includes(4) //false
[1,2,3].indexOf(4) //-1 如果存在换回索引
[1, 2, 3].find((item)=>item===3)) //3 如果数组中无值返回undefined
[1, 2, 3].findIndex((item)=>item===3)) //2 如果数组中无值返回-1
[1,2,3].some(item=>{
  return item===3
}) //true 如果不包含返回false

类数组转化

Array.prototype.slice.call(arguments) //arguments是类数组(伪数组)
Array.prototype.slice.apply(arguments)
Array.from(arguments)
[...arguments]

每一项设置值

[1,2,3].fill(false) //[false,false,false] 

相关文章

  • js笔记

    js数组 删除某个元素 js数组是否含有某个元素 判断value为undefined cookie操作

  • js基础了解

    js数组常用遍历方法使用: js数组常用操作方法使用: 基本逻辑运算: 基本字符串操作方法:

  • JS jsonArray操作

    JS jsonArray操作 js对数组对象的操作以及方法的使用 如何声明创建一个数组对象:var arr = n...

  • JS对象 & JSON & JS数组操作

    JS对象 & JSON & JS数组操作 JSON 格式(JavaScript Object Notation 的...

  • js对象数组操作 数组操作

    var numbers = [1, 2, 3];var newNumbers1 = numbers.map(fun...

  • JS数组操作

    splice 用于一次性解决数组添加、删除(这两种方法一结合就可以达到替换效果),方法有三个参数 开始索引 删除元...

  • JS数组操作

    1.栈方法 push()和pop() 后入先出 push():末尾追加 pop():末尾弹出 2.队列方法 先入先...

  • js 数组操作

    遍历删除元素: 遍历数组:for循环遍历: forEach遍历:

  • js数组操作

    一、改变原数组的方法 a.reverse() 将数组逆序,会修改原数组 a.sort 对数组进行排序, 需要传入自...

  • [js]数组操作

网友评论

      本文标题:js数组操作

      本文链接:https://www.haomeiwen.com/subject/pdcqvqtx.html