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]

  • 相关阅读:
    一个仿windows泡泡屏保的实现
    易语言中锐浪报表绿色发布指南(免COM组件DLL注册)
    服务器被攻击小记
    aidl.exe'' finished with non-zero exit value 1问题解决【转载】
    给APP增加RSA签名
    fastreport中文乱码问题
    EF join
    ActionFilter、IAuthorizationFilter 权限验证重定向跳转到其它页面
    EF 调试跟踪生成的SQL语句
    Asp.net MVC 权限验证,以及是否允许匿名访问
  • 原文地址:https://www.cnblogs.com/haimeimei/p/13259008.html
Copyright © 2011-2022 走看看