【JS】JS数组处理常用方法整理

1.去重

方法一:set去重

ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。

function unique (arr ){
        var x = new Set(arr);
        return [...x];
      };
unique([1,2,3,4,5,2,3,4])   //1,2,3,4,5
方法二:filter去重

filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身:

let arr = [1,2,3,4,5,6,7,4,5,6]
    arr.filter(function(item,index,arr){
    return arr.indexOf(item) === index
})
//[1,2,3,4,5,6,7]

2.筛选

方法一:for循环遍历

如:场景:筛选出两个数组中相等的值

function uniqueTree (uniqueArr,Arr) {
  let uniqueChild = []
  for(var i in Arr){
    for(var k in uniqueArr){
    if(uniqueArr[k] === Arr[i]){
        uniqueChild.push(uniqueArr[k])
    }
   }
  }
  return uniqueChild
}
let a = [2, 10, 37, 38, 39, 4];
let b = [1,2,3,4,5,6,7,8,9,10];
uniqueTree(a,b)   //2,4,10
方法二:filter 过滤掉相同项
var a=[1,2,3,4,5]

var b=[2,3,7,8,9]

a.filter(item=>b.indexOf(item)==-1) //1,4,5
方法三:filter+includes //留下相同项
var a=[1,2,3,4,5]

var b=[2,3,7,8,9]

a.filter(item=>b.includes(item))  //2,3

方法四:过滤数组中的所有假值 包括undefined,NaN,0,false

const test = arr => arr.filter(Boolean)
test([0, 1, false, 'vae', '', 3,  'a' * 2, NaN,  34])
[1, "vae", 3, 34]  

注意:这个方法会去除掉0,如果不涉及0的可以考虑用这个方法

文章会持续更新,可以点关注看最新文章呦~✨❤️

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容