1. 程式人生 > >js判斷一個元素是否在陣列中

js判斷一個元素是否在陣列中

js中存在一個數組,如何判斷一個元素是否存在於這個陣列中呢,首先是通過迴圈的辦法判斷,程式碼如下:

複製程式碼
var arr = ['a','s','d','f'];
console.info(isInArray(arr,'a'));//迴圈的方式

/**
 * 使用迴圈的方式判斷一個元素是否存在於一個數組中
 * @param {Object} arr 陣列
 * @param {Object} value 元素值
 */
function isInArray(arr,value){
    for(var i = 0; i < arr.length; i++){
        if(value === arr[i]){
            
return true; } } return false; }
複製程式碼

這種方式是比較通用的一種方式,但是需要自己寫函式,下面看一下第二種方式:

var arr = ['a','s','d','f'];
                console.info(arr.indexOf('a'));//在IE某些版本中不支援,可以自行擴充套件

這種方式是直接使用陣列的indexOf方法來判斷,如果元素存在於陣列中,那麼返回元素在陣列中的下標值,如果不存在,那麼返回-1,注意indexOf是區分大小寫的,字母O必需大寫,不然是會報錯的,另外,該方法在某些版本的IE中是不起作用的,因此在使用之前需要做一下判斷,修改後的程式碼如下所示:

複製程式碼
/**
 * 使用indexOf判斷元素是否存在於陣列中
 * @param {Object} arr 陣列
 * @param {Object} value 元素值
 */
function isInArray3(arr,value){
    if(arr.indexOf&&typeof(arr.indexOf)=='function'){
        var index = arr.indexOf(value);
        if(index >= 0){
            return true;
        }
    }
    return false
; }
複製程式碼

第三種方式,就是使用jquery的inArray方法,該方法返回元素在陣列中的下標,如果不存在與陣列中,那麼返回-1,程式碼如下所示:

複製程式碼
/**
 * 使用jquery的inArray方法判斷元素是否存在於陣列中
 * @param {Object} arr 陣列
 * @param {Object} value 元素值
 */
function isInArray2(arr,value){
    var index = $.inArray(value,arr);
    if(index >= 0){
        return true;
    }
    return false;
}
複製程式碼

這種方式可以用來刪除一個數組中的未知下標值的元素,程式碼如下所示:

var arr = ['a','s','d','f'];
console.info("刪除元素之前的陣列:"+arr);
arr.splice($.inArray('a',arr),1);
console.info("刪除元素之後的陣列:"+arr);

執行結果是:

[Web瀏覽器] "刪除元素之前的陣列:a,s,d,f"    /test/index.html (12)
[Web瀏覽器] "刪除元素之後的陣列:s,d,f"  /test/index.html (14)

相關推薦

js判斷一個元素是否在陣列

js中存在一個數組,如何判斷一個元素是否存在於這個陣列中呢,首先是通過迴圈的辦法判斷,程式碼如下:var arr = ['a','s','d','f']; console.info(isInArray(arr,'a'));//迴圈的方式 /** * 使用迴圈的方式判斷一個

js查詢某元素陣列的索引值(index)

 制定一個查詢方法! // 查詢元素在陣列中的索引值 Array.prototype.indexValue = function (arr) { for (var i = 0; i < this.length; i++) { if (this[i] == arr) {

js判斷一個元素距離頂部的距離

var maps = $(".maps").offset().top; 目前用起來可以的準確的方法 function getElementTop(elem){var elemTop=elem[0].offsetTop;//獲得elem元素距相對定位的父元素的topelem=ele

js 判斷一個字元在字串出現次數

思路:利用indexOf函式來判斷這個字元在字串中是否存在,為-1則存在,否則繼續  //檢測一個字元在字串中出現次數,引數字串,一個字元,返回字串出現的次數 function strCharPosition(str, char) { var pos; va

javascript(jquery)如何判斷一個元素在頁面是否存在

   在做專案的過程中,常會用到js,所以就會常發生指令碼錯誤,大部分原因是頁面中的元素髮生的更改,而js中沒有即時作對應的更改,或者是更改很麻煩(因為個別元素的原因)。因此在用js對某個元素的屬性進行“操作”時,應先判斷元素是否存在。 注意如下幾種判斷方法,根據實際情況選擇

js判斷一個物件為陣列的方法

陣列物件 js的陣列是無型別的:陣列元素可以是任意型別,並且同一個陣列中的不同元素也可能有不同的型別。陣列的元素可以是物件或其他陣列,這樣就可以建立複雜的資料結構。 通常我們可以用一元運算子typeo

Js如何判斷一個物件為陣列型別

在說明如何判斷一個物件為陣列型別前,我們先鞏固下js的資料型別,js一共有六大資料型別:number、string、object、Boolean、null、undefined。 string: 由單引號或雙引號來說明,如"string"; number:陣列型別,比如整數、小數等; Boolea

JS怎樣判斷一個元素是不是物件

JS中,判斷物件型別時存在一個bug,那就是null型別也是object,那麼如何精準判斷一個元素是物件呢。 方法一:typeof function isObj(val) { return val !== null && typeof(val) === 'o

python如何不區分大小寫的判斷一個元素是否在一個列表

拒絕 結果 大小寫 over 用戶 ima image -1 技術分享 python中判斷某一個元素是否在一個列表中,可以使用關鍵字in 和 not in. 示例如下: 如果需要輸出相應的信息,可以搭配使用if語句,這裏不贅述。 ---------------------

C++找出一個二維陣列的鞍點,即該位置上的元素在該行上最大,在該列上最小(也可能沒有鞍點)

今日正式用csdn部落格記錄,回顧我所學到的知識,分享一些我的人生感悟和自身經歷。也希望未來通夠過此平臺和更多喜愛程式設計的人交流學習。 道聽途說再加上自己的感悟,認為程式設計最重要的是思想,而不是語言本身,語言只是個工具。所以我們得先學思想。遇到問題,應該先想如果是自己去做會怎麼處理,但我們不

js判斷一個dom是否包含另一個dom的方法

首先,比較原始(蠢)的方法 function isChildOf(child, parent) { if(child && parent) { let parentNode = child.parentNode; w

c語言 將一個二維陣列行和列的元素互換,存到另一個二維陣列

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

js - 【陣列】怎麼判斷一個變數是陣列型別的?

怎麼判斷一個數組是陣列呢? 其實這個也是一個常考的題目。依稀記得我為數不多的面試經過中都被問道過。 方案一: instanceof variable instanceof Array 解決思路:  使用型別判斷所給的方法 instanceof &nb

如何判斷一個元素在億級資料是否存在?

前言 最近有朋友問我這麼一個面試題目: 現在有一個非常龐大的資料,假設全是 int 型別。現在我給你一個數,你需要告訴我它是否存在其中(儘量高效)。 需求其實很清晰,只是要判斷一個數據是否存在即可。 但這裡有一個比較重要的前提:非常龐大的資料。 常規實現 先不考慮這個條件,我們腦海中

Java架構/如何判斷一個元素在億級資料是否存在?

前言 最近有朋友問我這麼一個面試題目: 現在有一個非常龐大的資料,假設全是 int 型別。現在我給你一個數,你需要告訴我它是否存在其中(儘量高效)。 需求其實很清晰,只是要判斷一個數據是否存在即可。 但這裡有一個比較重要的前提:非常龐大的資料。 常規實現 先

布隆過濾---判斷一個元素在億級資料是否存在

如何判斷一個元素在億級資料中是否存在? https://www.cnblogs.com/crossoverJie/p/10018231.html 前言 最近有朋友問我這麼一個面試題目: 現在有一個非常龐大的資料,假設全是 int 型別。現在我給你一個數,你需要告訴我它是否存在其中(儘量高效)。 需求其

js 判斷一個字串出現次數最多的字元,統計其出現次數

js 判斷一個字串中出現次數最多的字元,統計其出現次數 var str = 'asdfssaaasasasasaa'; var json = {}; for (var i = 0; i < str.length; i++) { if(!json[str.charAt(i

劍指off:在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣一個二維陣列一個整數,判斷陣列中是否含有該整數

題目描述 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路: 從左下角x開始尋找,x為此列最大數字,此行最小數字。如果目

JS判斷一個是否為函式或者為陣列(資料型別的判斷)

如下程式碼所示: 有幾個細節要注意 1)typeof(arr) === ‘object’ 使用typeof陣列,得到的是一個object,而不 是返回Array或者array 2)console.info(1 instanceof Number) //fal