zoukankan      html  css  js  c++  java
  • js判断数组中是否存在某一数值的方法

    1.javascript的indexOf()方法
    var arr_data = [1,2,3];
    arr_data.indexOf(1); //如果存在返回值的下标,不存在返回-1

    2.jquery的$.inArray()方法

    $.inArray(1, arr_data); //如果存在返回值的下标,不存在返回-1

    3.arr.find()

    数组实例的find()用于找出第一个符合条件的数组元素。它的参数是一个回调函数,所有的数组元素依次遍历该回调函数,直到找出第一个返回值为true的元素,然后返回该元素,否则返回undefined。

    注意:find()对于空数组,函数是不会执行的。find()并没有改变数组的原始值

    arr.find(function(value) {

       if(value === 要查找的值) {

           //则包含该元素   
    }})

    const myArr=[1,2,3,4,5,6];
    var v=myArr.find(value=>value>4);
    console.log(v);// 存在值 返回该元素

    var v=myArr.find(value=>value>10);

    console.lof(v);//不存在,返回undefined

    回调函数有三个参数。value:当前的数组元素。index:当前索引值。arr:被查找的数组

    var arry = [23,34,43,4,41,45,6];

    var v=arry.find((value,index,arr)=>{
          return index==4
    });
    console.log(v); //41 返回元素


    4.arr.findIndex()返回第一个符合条件的数组元素的位置,如果所有的元素都不符合条件,则返回-1.

    注意:find(),findIndex()弥补了index的不足:(即判断NAN)

    [NaN].indexOf(NaN) // -1

    [NaN].findIndex(y => Object.is(NaN, y))// 0


    var arry = [23,34,43,4,45,45,6];
    var i = arry.findIndex((value)=>value==4);
    console.log(i); 存在则返回元素在数组的位置,此处返回3,不存在则返回-1。


    5.for循环和if判断
        var arr = [1, 5, 10, 15];
        //传统for
        for(let i=0; i<arr.length; i++) {
            if(arr[i] === 查找值) {
                //则包含该元素
            }
        }
        // for...of
        for(v of arr) {
            if(v === 查找值) {
                //则包含该元素
            }
        }
        //forEach
        arr.forEach(v=>{
            if(v === 查找值) {
                //则包含该元素
            }
        })

    filter()
    filter()与find()使用方法也相同。同样都接收三个参数。不同的地方在于返回值。filter()返回的是数组,数组内是所有满足条件的元素,而find()只返回第一个满足条件的元素。如果条件不满足,filter()返回的是一个空数组,而find()返回的是undefined
    var arry = [23,34,43,4,41,23,34,45,6];
    console.log(arry.filter(item=>item>40)); //[43, 41, 45] 返回符合条件的数组

    数组去重

    console.log(arry.filter((value,index,arr)=>arry.indexOf(value)===index)); //[23, 34, 43, 4, 41, 45, 6]

  • 相关阅读:
    [BJOI2019] 光线
    C# 从零开始写 SharpDx 应用 笔刷
    BAT 脚本判断当前系统是 x86 还是 x64 系统
    BAT 脚本判断当前系统是 x86 还是 x64 系统
    win2d 通过 CanvasActiveLayer 画出透明度和裁剪
    win2d 通过 CanvasActiveLayer 画出透明度和裁剪
    PowerShell 拿到显卡信息
    PowerShell 拿到显卡信息
    win10 uwp 如何使用DataTemplate
    win10 uwp 如何使用DataTemplate
  • 原文地址:https://www.cnblogs.com/haimeimei/p/13259008.html
Copyright © 2011-2022 走看看