導航:首頁 > 使用方法 > js遍歷數組的常用方法

js遍歷數組的常用方法

發布時間:2023-01-02 03:02:37

Ⅰ JS數組循環遍歷常用的9種方法

首先定義一個數組

const arr = [1,2,3,4,5,6];

第一種:for循環

for (let i = 0;i<arr.length;i++){

   console.log(arr[i]);

}

for(j=0,len=arr.length;j<len;j++){}//這種方法基本上是所有循環遍歷方法中性能最高的一種

第二種 for of (需要ES6支持) 性能要好於forin,但仍然比不上普通for循環

for (let value of arr){

       console.log(value);

}

第三種 for in 它的效率是最低的

for (let i in arr){

      console.log(arr[i]);

 }

第四種 foreach() 實際上性能比普通for循環弱

    1、箭頭函數寫法

    arr.forEach(value =>{

        console.log(value);

    })

    2、普通函數寫法

    arr.forEach(function(value){

       console.log(value);

     })

第五種 entries()

for (let [index, value] of arr.entries()) {

     console.log(value);

 }

第六種 keys()

for (let inx of arr.keys()){

console.log(arr[inx]);

}

第七種 rece()

1、箭頭函數

arr.rece((pre,cur)=>{

       console.log(cur);

 })

2、普通函數

arr.rece(function(pre,cur){

     console.log(cur);

})

第八種 map() 但實際效率還比不上foreach

1、箭頭函數

 arr.map(value=>{

       console.log(value);

 })

2、普通函數

arr.map(function(value){

      console.log(value);

})

第九種 values()

for (let value of arr.values()){

       console.log(value);

 }

Ⅱ js遍歷數組some()方法

題目描述:在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。一個簡單的數組遍歷題。

答案:js語言:

functionFind(target, array){returnarray.some(arr => arr.some(e => e === target))}

解釋:

外面的some方法是對每個一維進行遍歷,裡面的some方法是對每個一維的每一個元素進行遍歷,判斷是否嚴格等於要找的target元素,復雜度為n方。

 =>是es6語法中的arrow function

例:(x) => x + 6 相當於

function(x){

    return x + 6;

};

那麼e => e === target表示返回嚴格等於target的元素e

some()方法用於檢測數組中的元素是否滿足指定條件

some() 方法會依次執行數組的每個元素:

如果有一個元素滿足條件,則表達式返回 true  , 剩餘的元素不會再執行檢測。

如果沒有滿足條件的元素,則返回false。

注意:  some() 不會對空數組進行檢測。

注意:  some() 不會改變原始數組。

這里小記一下some以及類似的every,對比一下其他遍歷方法

some() 有一個元素滿足條件,即返回true

const a = [1, 2, 3]console.log(a.some(v => v > 5))  //falseconsole.log(a.some(v => v < 2))  //true

every() 所有元素滿足條件,即返回true

const a = [1, 2, 3]console.log(a.every(v => v < 5))  //trueconsole.log(a.every(v => v < 2))  //false

filter() 返回包含滿足條件元素的數組

const a = [1, 2, 3]

console.log(a.filter(v => v < 3))  // [1, 2]

map() 返回一個新數組

const a = [1, 2, 3]

console.log(a.map(v => v + 5))  // [6, 7, 8]

forEach() 僅循環,無返回值,本質上相當於for

const a = [1, 2, 3]

a.forEach(v => console.log(v))  // 1    2    3

Ⅲ js遍歷多維數組(面向對象)

//實現一個 Array each方法 實現遍歷多維數組

var arr = [1,2,3,[4,[5,6]]]; //arr.length

Array.prototype.each = function(fn){

try{

//1 目的  遍歷數組的每一項  //計數器 記錄當前遍歷的元素位置

this.i || (this.i=0);

//2 嚴謹的判斷什麼時候去走each核心方法

//當數組的長度大於 0 的時候 && 傳遞的參數 必須為函數

if( this.length>0  && fn.constructor == Function ){

// 循環遍歷數組的每一項 

while( this.i < this.length ){

//獲取數組的每一個值

var e = this[this.i]; //數組的每一項

//如果當前元素獲取到了 並且當前元素是一個數組

if(e && e.constructor == Array ){

//直接遞歸操作

e.each(fn);

}else{

//如果不是數組 (那就是一個單個元素)

//var obj = true;

//fn.apply(obj,[e]);

//這的目的就是為了把數組的當前元素 傳遞給fn函數,並且讓函數執行

fn.call(e,e);

}

this.i++

}

this.i == null ; //釋放內存 垃圾回收機制回收變數

}

}catch(err){

//do something

}

return this;

}

arr.each(function(item){

console.log(item)

});

Ⅳ js數組遍歷的常用的幾種方法以及差異和性能優化

<script type="text/javascript">
/*對比:
1、map速度比foreach快
2、map會返回一個新數組,不對原數組產生影響,foreach不會產生新數組,foreach返回undefined
3、map因為返回數組所以可以鏈式操作,foreach不能
4, map里可以用return ,而foreach里用return不起作用,foreach不能用break,會直接報錯*/
/*方法一:*/
var arr1 = [1, 2, 3, 4, 5, 6];
for(var i = 0, len = arr1.length; i < len; i++) { //優化性能處理
console.log(arr1[i], 'for遍歷出來的數據'); //每個item 1,2,3,4,5,6
}
/*方法二:*/
/*forEach方法中的function回調支持3個參數,第1個是遍歷的數組內容;第2個是對應的數組索引,第3個是數組本身*/
var arr2 = [{
name: 'bob',
age: 20
},
{
name: 'tom',
age: 18
},
{
name: 'sos',
age: 19
}
]
arr2.forEach((val, i) => { //沒有返回值的,對原來數組也沒有影響
console.log(val, '遍歷出來的每個obj')
});
/*方法三:*/
var fruits = [1, 2, 3, 4, 5, 6, 7, 8];
let arr = fruits.map((item, index) => {
console.log(item, 'top')
console.log(index, 'top')
return item * 8
})
console.log(arr, 'newarr') //[8, 16, 24, 32, 40, 48, 56, 64] "newarr"
var a = fruits.indexOf("Apple", 4);
console.log(a)
//for 和 forEach都是普通循環,map 帶返回值並且返回一個新數組;
/*
*當前元素的值,當期元素的索引值,當期元素屬於的數組對象;
語法:array.map(function(currentValue,index,arr), thisValue)
map() 方法返回一個新數組,數組中的元素為原始數組元素調用函數處理後的值。
map() 方法按照原始數組元素順序依次處理元素。
注意: map() 不會對空數組進行檢測。
注意: map() 不會改變原始數組。
* */
/*方法四:*/
/*兼容寫法:
不管是forEach還是map在IE6 - 8 下都不兼容( 不兼容的情況下在Array.prototype上沒有這兩個方法), 那麼需要我們自己封裝一個都兼容的方法:*/
/**
* forEach遍歷數組
* @param callback [function] 回調函數;
* @param context [object] 上下文;
*/
Array.prototype.myForEach = function myForEach(callback, context) {
context = context || window;
if('forEach' in Array.prototye) {
this.forEach(callback, context);
return;
}
//IE6-8下自己編寫回調函數執行的邏輯
for(var i = 0, len = this.length; i < len; i++) {
callback && callback.call(context, this[i], i, this);
}
}
/**
* map遍歷數組
* @param callback [function] 回調函數;
* @param context [object] 上下文;
*/
Array.prototype.myMap = function myMap(callback, context) {
context = context || window;
if('map' in Array.prototye) {
return this.map(callback, context);
}
//IE6-8下自己編寫回調函數執行的邏輯var newAry = [];
for(var i = 0, len = this.length; i < len; i++) {
if(typeof callback === 'function') {
var val = callback.call(context, this[i], i, this);
newAry[newAry.length] = val;
}
}
return newAry;
}
</script>

Ⅳ JS中幾種包含for的遍歷方式

數組的常用遍歷方法常用有:for、map、forEach

letarr=[1,2,3,4,5];
arr.forEach((i)=>{
console.log(i);//12345});
}
letarr=['a','b','c','d'];
letnewArr=arr.map((val,key)=>{
if(val=='c'){
returnval;
}
});
console.log(newArr);//[undefined,undefined,'c',undefined];
letarr=[10,20,30,40,50];
for(letiteminarr){
console.log(item);//'0''1''2''3''4'}
}

如果是對象數據(可枚舉屬性)

letobj={name:'xiaoming',age:15}
for(letiteminobj){
console.log(item);//nameage
}

【秉著學習的態度,如有錯誤請指正】

Ⅵ js中遍歷數組對象的幾種方式

concat()連接兩個或更多的數組,並返回結果。
join()把數組的所有元素放入一個字元串。元素通過指定的分隔符進行分隔。
pop()刪除並返回數組的最後一個元素
push()向數組的末尾添加一個或更多元素,並返回新的長度。
reverse()顛倒數組中元素的順序。
shift()刪除並返回數組的第一個元素。
slice()從某個已有的數組返回選定的元素等等。

閱讀全文

與js遍歷數組的常用方法相關的資料

熱點內容
苯甲醇乙醚鑒別方法 瀏覽:76
蘋果手機微信視頻聲音小解決方法 瀏覽:694
控制箱的連接方法 瀏覽:69
用什麼簡單的方法可以去痘 瀏覽:783
快速去除甲醛的小方法你知道幾個 瀏覽:798
自行車架尺寸測量方法 瀏覽:118
石磨子的製作方法視頻 瀏覽:146
行善修心的正確方法 瀏覽:400
土豆燉雞湯的正確方法和步驟 瀏覽:272
北京電流檢測方法 瀏覽:481
手機u盤保護方法 瀏覽:113
數字搭配有哪些方法 瀏覽:666
約一場球的正確方法 瀏覽:187
在家中洗衣服的方法如何 瀏覽:293
28天鍛煉腹肌最快的方法 瀏覽:201
簡單練翹臀方法視頻 瀏覽:758
心理診斷評估常用的方法有哪些 瀏覽:843
什麼方法能讓手機不黑屏 瀏覽:722
電腦開機慢的處理方法視頻 瀏覽:724
後天形成內斜視訓練方法有哪些 瀏覽:362