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]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM