導航:首頁 > 解決方法 > 檢測數組的6種方法

檢測數組的6種方法

發布時間:2023-03-31 05:13:28

1. 數組查詢某一項,以及循環詳解

1.indexOf:
開始檢索的位置在數組 start 處或數組的開頭(沒有指定 start 參數時)。如果找到一個 item,則返回 item 的第一次出現的位置,如果沒找到指定元素則返回 -1。(indexOf值如果>=0則是找到,-1則是沒有找到

2.includes:

includes() 方法用來判斷一個數組是否包含一個指定的值,如果是返回 true,否則false。
另外還可以再接受一個索引值 例如fruits.includes('Orange', index)
如果為負,則按升序從 fruits.length + index的索引開始搜索。默認為 0。
如果沖帆index大於等於數組長度則返回 false 。該數組不會被搜索。
如果 index 為負值,計算出的索引將作為開始搜索'Orange'的位置。如果計算出的索引小於 0,則整個數組都會被搜索。
3.find:

同時可以傳遞更多的參數

currentValue:當前元素
index:索引
arr:當前元素所屬的數組對象
thisValue:傳遞給函數的值一般用 "this" 值。如果這個參數為空, "undefined" 會傳遞給 "this" 值
返回符合條件的第一個數組元素值,如果沒有符合條件的則返回 undefined。
4.filter
filter() 方法創建一個新的數組,新數組中的元素是通過檢查指定數組中符合條件的所有元素。filter() 不會對空數組進行檢測。 filter() 不會改變原始數組。

參數和find一樣
返回數組,包含冊團了符合條件的所有元素。如果沒有符合條件的元素則返回空數組。

5.forEach
forEach() 對於空數組是不會執行回調函數的。

在forEach中修改item值時數組並不會改變
如果想要修改則:

6.map:
map() 方法返回一個新數組,數組中的元素為原始數組元素調用函數處理後的值。
map() 方法按照原始數組元素順序依次處理元素。
注意: map() 不會對空數組進行檢測。
注意: map() 不會改變原始數組。

7.rece

rece() 方法接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值。
rece() 可以作為一個高階函數,用於函數的 compose。
注意: rece() 對於空數組是不會執行回調函數的

total 必需。初始值, 或者計算結束後的返回值。
currentValue 必需。當前元素
currentIndex 可散姿雹選。當前元素的索引
arr 可選。當前元素所屬的數組對象。

for in和for of 單獨記錄

2. 如何判斷一個數組里是否包含一個數

判斷一個數組里是否包含一個數的具體步驟如下:

我們需要准備的材料分別是:電腦、Excel表格。

1、首先我們打開需要編輯的Excel表格,點擊數組的第一個單元格。

3. 對數組每項進行處理,判斷的幾種方法

對數組每滾則項進行處理、判斷的幾種方法
除了常用的for和while循環外,還有其他幾種函數可以快速的處理數組
1、forEach()
array.forEach(function(currentValue, index, arr), thisValue)
返回值: undefined
var arr = [10, 20];
arr.forEach(function(value, index, array) { // value數組每一項的值,index索引
console.log(array); // [10, 20]
console.log(this); // {name: 123}
}, obj);
2、map()
array.map(function(currentValue,index,arr), thisValue)
返回值: 一個新數組
var arr = [4, 9];
var arr2 = arr.map(Math.sqrt);
console.log(arr, arr2); // [4, 9] [2, 3]
3、filter()
array.filter(function(currentValue,index,arr), thisValue)
返回值: 新數組,包含了符合條件的所有元素
arr = [1, 3, 5, 2];
var arr2 = arr.filter(function(value) {
if (value > 2) {
return value;
}
});
console.log(arr, arr2); // [1, 3, 5, 2] [3, 5]
4、every()
array.every(function(currentValue,index,arr), thisValue)
返祥備棚回值: 布爾值
如果數組中檢測到有一個元素不滿足,則整謹則個表達式返回 false ,且剩餘的元素不會再進行檢測。
5、some()
array.some(function(currentValue,index,arr),thisValue)
返回值: 布爾值
如果數組中有元素滿足條件返回 true,否則返回 false。

4. JS 中如何判斷數組

JS 中有四種方式判斷數據類型,它們分別是: typeof 、 instanceof 、 constructor 、 Object.prototype.toString 。

在 ES5 中,新增了幾種方式可以用來進行數組的判斷,它們是 Object.prototype.isPrototypeOf 、 Array.isArray 和 Object.getPrototypeOf 。

很遺憾,對於任何引用類型的數據(包括 null ),行族 typeof 統一返回 Object 字元串,所以不能用它來判斷 JS 中的數組。

於是可以通過 instanceof 檢測數據的原型鏈中是否存在 Array 構造函蘆帶譽數來判斷數據是否是數組。

對象實例有一個 constructor 屬性, constructor 指向對象實例的構造函數。於是,我們可以通過判斷數據的 constructor 是否為 Array 構造函數即可。

要注意: constructor 是可以被修改的,所以這種判斷方式不可靠。

toString 可以用於檢測對象的類型,它返回一個字元串。為了每個對象都能通過 Object.prototype.toString 來判斷,需要藉助函數的 call 或者 apply 方法。

這個方法沒什麼好說的,直接調用即可,會返回一個布爾值。

根據 ES5 新增的這個方法,我們可以把數組的原型對象與需要判斷對象的原型進行比較,如果兩者是全等關系,那麼可以認為它是數組。

借用 ES5 新增的 isPrototypeOf 方法,可以直接了當的通過 Array 調用來判斷目標數據是否是數組類型。

ES5 新增的兩種方法都與原型鏈有關,理解並掌握原型相關內容還是判斷數組的關鍵。陪段方便理解與記憶的話,可以把 isArray 和 isPrototypeOf 放在一起,他們返回的都是布爾值,並且用途也相似。

getPrototypeOf 方法則是用來找到被檢測數據的原型,拿到原型後還要與 Array.prototype 進行比較。

5. 在Java中,如何檢測一個數組中是否包含某一個數據

在Java中,檢測一個數組是否包含某一個數據,通常有四種方法:

(1)for循環

(2)轉換為List,調用Arrays.asList(arr).contains方法

(3)使用Set

(4)使用Arrays.binarySearch()方法

下面為上述四種方法的具體代碼實現:

1、使用for循環

publicstaticbooleanuseLoop(String[]arr,StringtargetValue){

for(Strings:arr){

if(s.equals(targetValue))

returntrue;

}

returnfalse;

}

2、轉換為List,調用Arrays.asList(arr).contains方法

publicstaticbooleanuseList(String[]arr,StringtargetValue){

returnArrays.asList(arr).contains(targetValue);

}

3、使用Set

publicstaticbooleanuseSet(String[]arr,StringtargetValue){

Set<String>老輪搜set=newHashSet<String>(Arrays.asList(arr));

returnset.contains(targetValue);

}

4、使侍歷用Arrays.binarySearch()方法

特別說明:binarySearch()二分查找僅適用於有序數組,如果不是有序數組,則報異常

(String[]arr,StringtargetValue){

inta=Arrays.binarySearch(arr,targetValue);

if(a>0){

returntrue;

}else{

returnfalse;

}}

(5)檢測數組的6種方法擴展閱讀:

Java種List列表的contains方法:

該方法是通過遍歷集合中的每一個元桐猛素並用equals方法比較是否存在指定的元素。

publicbooleancontains(Objecto){

Iterator<E>it=iterator();

if(o==null){

while(it.hasNext())

if(it.next()==null)

returntrue;

}else{

while(it.hasNext())

if(o.equals(it.next()))

returntrue;

}

returnfalse;

}

6. 原生如何檢測變數是否是一個數組的幾種方法

JavaScript中檢測對象的方法
1.typeof操作符
這種方法對於一些常用的類型來說那算是毫無壓力,比如Function、String、Number、Undefined等,但是要是檢測Array的對象就不起作用了。

代碼如下:

alert(typeof null); // "object"
alert(typeof function () {
return 1;
}); // "function"
alert(typeof '夢龍小站'); // "string"
alert(typeof 1); // "number"
alert(typeof a); // "undefined"
alert(typeof undefined); // "undefined"
alert(typeof []); // "object"

2.instanceof操作符
這個操作符和JavaScript中面向對象有點關系,了解這個就先得了解JavaScript中的面向對象。因為這個操作符是檢測對象的原型鏈是否指向構造函數的prototype對象的。
var arr = [1,2,3,1];
alert(arr instanceof Array); // true
3.對象的constructor屬性
除了instanceof,每個對象還有constructor的屬性,利用它似乎也能進行Array的判斷。

代碼如下:

var arr = [1,2,3,1];
alert(arr.constructor === Array); // true

第2種和第3種方法貌似無懈可擊,但是實際上還是有些漏洞的,當你在多個frame中來回穿梭的時候,這兩種方法就亞歷山大了。由於每個iframe都有一套自己的執行環境,跨frame實例化的對象彼此是不共享原型鏈的,因此導致上述檢測代碼失效!

代碼如下:

var iframe = document.createElement('iframe'); //創建iframe
document.body.appendChild(iframe); //添加到body中
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray(1,2,3); // 聲明數組[1,2,3]
alert(arr instanceof Array); // false
alert(arr.constructor === Array); // false

檢測數組類型方法
以上那些方法看上去無懈可擊,但是終究會有些問題,接下來向大家提供一些比較不錯的方法,可以說是無懈可擊了。
1.Object.prototype.toString
Object.prototype.toString的行為:首先,取得對象的一個內部屬性[[Class]],然後依據這個屬性,返回一個類似於"[object

Array]"的字元串作為結果(看過ECMA標準的應該都知道,[[]]用來表示語言內部用到的、外部不可直接訪問的屬性,稱為「內部屬性」)。利用這
個方法,再配合call,我們可以取得任何對象的內部屬性[[Class]],然後把類型檢測轉化為字元串比較,以達到我們的目的。

代碼如下:

function isArrayFn (o) {
return Object.prototype.toString.call(o) === '[object Array]';
}
var arr = [1,2,3,1];
alert(isArrayFn(arr));// true

call改變toString的this引用為待檢測的對象,返回此對象的字元串表示,然後對比此字元串是否是'[object
Array]',以判斷其是否是Array的實例。為什麼不直接o.toString()?嗯,雖然Array繼承自Object,也會有
toString方法,但是這個方法有可能會被改寫而達不到我們的要求,而Object.prototype則是老虎的屁股,很少有人敢去碰它的,所以能一定程度保證其「純潔性」:)

JavaScript 標准文檔中定義: [[Class]] 的值只可能是下面字元串中的一個: Arguments,
Array, Boolean, Date, Error, Function, JSON, Math, Number, Object,
RegExp, String.
這種方法在識別內置對象時往往十分有用,但對於自定義對象請不要使用這種方法。
2.Array.isArray()
ECMAScript5將Array.isArray()正式引入JavaScript,目的就是准確地檢測一個值是否為數組。IE9+、
Firefox 4+、Safari 5+、Opera 10.5+和Chrome都實現了這個方法。但是在IE8之前的版本是不支持的。
3.較好參考
綜合上面的幾種方法,有一個當前的判斷數組的最佳寫法:

代碼如下:

var arr = [1,2,3,1];
var arr2 = [{ abac : 1, abc : 2 }];
function isArrayFn(value){
if (typeof Array.isArray === "function") {
return Array.isArray(value);
}else{
return Object.prototype.toString.call(value) === "[object Array]";
}
}
alert(isArrayFn(arr));// true
alert(isArrayFn(arr2));// true

7. 數組的方法比較

1.filter(返回的是滿足表達式的項,可以return)

1).forEach方法用來調用數組的每個元素,將元素傳給回調函數

2).forEach對於空數組是不會調用回調函數的。 無論arr是不是空數組,forEach返掘派回的都是undefined。這個方法只是將數組中的每一項作為callback的參數執行一次。

2.forEach(不能return)

3.map(可以return,可以直接返回想要的數據, 創建一個新數組,其結果是該數組中的每個元素都調用一次提供的函數後的返回)

1).map方法返回一個新的數組,數組判迅賀中的元素為原始數組調用函數處理後的值。

2).map方法不會對空數組進行檢測,map方法不會改變原始數組。

3). 若arr為空數組,則map方法返回的也是一個空數組。

4.rece

5.every(檢測一個數組的所有元素是否都能通過制定函數的測試,返回一個boolean值,空數組的話會返回true)

6.find(返回數組中滿昌李足提供的測試函數的第一個元素的值)

7.some(測試數組中是不是至少有1個元素通過了被提供的函數測試。它返回的是一個Boolean類型的值。)

8. js 中判斷數組中是否包含某個元素

1.arr.indexOf(搜索元素,開始位置):
元素在數組中的位置,如果沒搜索到則返回 -1

2.arr.includes(搜索逗態元素):
如猜指穗果是返回 true,否則false

3.filter() 方法:返回符合條件的元素組成的數組

4.array.find():返回找出第一個符合條件的數組元素

5.array.findIndex():返回第一個符合條件的數組元素的位置,
如果所有穗卜元素都不符合條件,則返回-1

6.傳統for()循環

7.for...of

8.forEach

9.some():用於檢測數組中的元素是否滿足指定條件(函數提供)
如果有一個元素滿足條件,則表達式返回true , 剩餘的元素不會再執行檢測。
如果沒有滿足條件的元素,則返回false。

10.every:用於檢測數組中的元素是否滿足指定條件(函數提供)
如果都滿足條件,則表達式返回true ,
如果有一個不滿足,則返回false。

9. 如何判斷一個數組中是否包含一個字元或字元串

第一種方法:遍歷數組
String[]
arr1
=
{"1","2","3","穗毀4","6","7"};
for
(int
i
=
0;
i
<
arr1.length;
i++)
{
if("5"告遲.equals(arr1[i]))
{
System.out.println("包含"猜友備);
}else
{
System.out.println("不包含");
}
}
第二種方法:先把數組轉換成list;再判斷contains
String[]
arr
=
{"1","2","3","4","6","7"};
List<String>
list=Arrays.asList(arr);
System.out.println(list.contains("5"));

10. 數組的方法有哪些

數組中常用的方法有:
1、給數組末尾添加新內容的push方法;
2、刪除數組最後一項的pop方法;
3、刪除數組第一項的shift方法;
4、向數組首位添加新內容unshift方法;
5、按照條件查找出其中的部分內容。

數組(Array)是有序的元素序列。若將有限個類型相同的變數的集合命名,那麼這個名稱為數組名。組成數組的各個變數稱為數組的分量,也稱為數組的元素,有時也稱為下標變數。用於區分數組的各個元素的數字編號稱為下標。數組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按有序的形式組織起來的一種形式。這些有序排列的同類數據元素的集合稱為數組。數組是用於儲存多個相同類型數據的集合。

在C語言中, 數組[2]屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指針數組、結構數組等各種類別。
關於可變長數組(VLA)的問題:原來的C89標准中是不允許可變長數組出現的,但是在C99標准中,加入了對VLA的支持,但是支持的編譯器不多,而且由於棧溢出的安全問題,沒有太多的人敢用這個可變長數組,所以在C11標准中又把它規定為可選實現的功能了。

如果有過用其它語言編程的經歷,那麼想必會熟悉數組的概念。由於有了數組,可以用相同名字引用一系列變數,並用數字(索引)來識別它們。在許多場合,使用數組可以縮短和簡化程序,因為可以利用索引值設計一個循環,高效處理多種情況。數組有上界和下界,數組的元素在上下界內是連續的。因為 Visual Basic對每一個索引值都分配空間,所以不要不切實際聲明一個太大的數組。

此處數組是程序中聲明的變數數組。它們不同於控制項數組,控制項數組是在設計時通過設置控制項的 Index 屬性規定的。變數數組總是連續的;與控制項數組不同的是,不能從一個數組的中部載入或卸載數組元素。

閱讀全文

與檢測數組的6種方法相關的資料

熱點內容
面部截骨後快速消腫的方法是什麼 瀏覽:225
如何判斷腎病的方法 瀏覽:173
神經性皮炎快速消除方法 瀏覽:314
手邦魚鉤方法視頻 瀏覽:440
學校禁毒宣傳的方法有哪些 瀏覽:381
瓷磚輻射儀檢測方法 瀏覽:64
吃雞生蛋的正確方法 瀏覽:682
肝鬱氣滯治療方法 瀏覽:123
斯塔福犬的訓練方法 瀏覽:281
藍牙發射器連接電腦正確方法 瀏覽:432
經濟和市場研究的定量和定性方法 瀏覽:104
彩紙做電視的簡單方法 瀏覽:857
兒童植物標本製作方法簡單 瀏覽:10
內痔瘡脫肛最佳治療方法 瀏覽:947
治療截癱的方法 瀏覽:250
電視路由器聲音怎麼設置在哪裡設置方法 瀏覽:1000
用什麼方法可以遮霜 瀏覽:609
金屬成分分析方法 瀏覽:54
化學常用計算方法視頻 瀏覽:552
研究方法如何銜接 瀏覽:283