導航:首頁 > 編程語言 > javascript遍歷map

javascript遍歷map

發布時間:2025-02-12 09:33:06

javaScript中數組的遍歷(map,forEach)

在JavaScript中,數組的遍歷主要依賴於map()和forEach()函數。這兩種方法在處理數組元素時,有著明顯的不同。

map()函數用於循環遍歷數組,並對每一個元素執行指定的函數,然後返回一個新數組,原數組不會改變。在使用時,map()函數接受一個函數作為參數,該函數對數組中的每一個元素執行一次。在這個函數中,參數val表示數組元素的值,index表示當前元素的索引,arr表示整個數組。

而forEach()函數則是用於遍歷數組,但它不返回任何新值。它執行一個為每個數組元素調用一次的回調函數。在forEach()函數中,參數val、index和arr分別代表數組元素的值、元素的索引和數組本身。

在用法上,對於forEach()函數,可以使用如下格式:a.forEach(function(val,index,arr){})。而對於map()函數,其格式為:a.map(function(val,index,arr){})。這里的a代表數組。

總結來說,map()和forEach()都用於遍歷數組,但它們的功能和用法存在明顯的區別。map()返回一個包含修改後元素的新數組,而forEach()則不返回數組,僅執行回調函數。在實際開發中,應根據具體需求選擇合適的方法進行數組遍歷操作。

⑵ javascript map遍歷之後返回的數組是深拷貝嗎

是深拷來貝,返回的是一個全新的自數組,與原來的數組並存。

比如:

js">vara=[1,2,3];
varb=a.map(function(currentValue,index,arr){
returncurrentValue*2;
});
console.log(a);
console.log(b);

分別輸出[1, 2, 3]和[2, 4, 6]。

JS中絕大多數函數都是屬於深拷貝的,一般不會對原對象執行操作,而是將處理結果通過返回值返回的。

⑶ 原生JS forEach和map遍歷的區別以及兼容寫法

一、原生JS forEach()和map()遍歷
共同點:
1.都是循環遍歷數組中的每一項。
2.forEach() 和 map() 裡面每一次執行匿名函數都支持3個參數:數組中的當前項item,當前項的索引index,原始數組input。
3.匿名函數中的this都是指Window。
4.只能遍歷數組。
1.forEach()
沒有返回值。
[javascript] view plain
var ary = [12,23,24,42,1];
var res = ary.forEach(function (item,index,input) {
input[index] = item*10;
})
console.log(res);//-->undefined;
console.log(ary);//-->會對原來的數組產生改變;
2.map()
有返回值,可以return 出來。
[javascript] view plain
var ary = [12,23,24,42,1];
var res = ary.map(function (item,index,input) {
return item*10;
})
console.log(res);//-->[120,230,240,420,10];
console.log(ary);//-->[12,23,24,42,1];
兼容寫法:
不管是forEach還是map在IE6-8下都不兼容(不兼容的情況下在Array.prototype上沒有這兩個方法),那麼需要我們自己封裝一個都兼容的方法,代碼如下:
[javascript] view plain
/**
* 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);
}
}
[javascript] view plain
/**
* 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;
}

⑷ javascript怎麼遍歷map

var map = new HashMap();
map.put("a","1");
map.put("b","2");
遍歷:
var key = map.keySet();
for (var i in key){
alert(map.get(key[i]));

註:js 中使用map,要先導入一個HashMap.js文件
沒要求,引入這內個文件之後容,可以直接使用hashmap了

閱讀全文

與javascript遍歷map相關的資料

熱點內容
iphone6關閉簡訊預覽 瀏覽:379
什麼天氣預報app准確率高 瀏覽:562
有什麼放單的淘客網站 瀏覽:669
為什麼蘋果app無法下載應用程序 瀏覽:724
各種各樣的工具圖片大全 瀏覽:586
遇夢app怎麼錄歌 瀏覽:309
電腦怎麼重新連接網路 瀏覽:662
如何建bat文件 瀏覽:15
蘋果微信搖色子輔助器 瀏覽:649
圖片的字模糊怎麼變清晰用什麼app 瀏覽:180
貼吧文件區在哪 瀏覽:968
港版lgg4軟體版本 瀏覽:540
編程軟體如何上傳文件 瀏覽:520
阜陽交通運輸局網站多少 瀏覽:435
bt電腦怎麼打開文件 瀏覽:886
快手直播伴侶安卓手機版 瀏覽:899
yy其他版本下載軟體 瀏覽:814
學習編程用什麼編程軟體 瀏覽:358
pooi是什麼文件夾 瀏覽:421
三星5306下載a程序 瀏覽:475

友情鏈接