2017-10-20 87 views
-1

這裏是使用我當前的代碼forEach()轉換的forEach函數來在JavaScript映射函數

1.

// loop with assignment 
userForm.forEach(field => { 
    field.value = '' 
}) 

2.

// if array1 has field which array2 have, assign it 
array1.forEach(field => { 
    if (Object.keys(array2).indexOf(field.name) > -1) { 
     field.value = array2[field.name] 
    } 
}) 

3.

array1.forEach(field => { 
    field.shouldShow = false 
    field.start = moment(invoice.start).format('YYYY/MM/DD') 
    field.end = moment(invoice.end).format('YYYY/MM/DD') 
    // ..brabrabra asignment 
}) 

是possi ble將所有forEach()功能變爲map()功能?

+0

它不清楚你正在努力實現 – Rajesh

+0

正如你的foreach過的對象,只有改變它的性質是什麼,它不會使很大程度上有所不同。當你使用map時,你必須添加'return field'。 –

+0

想讓它更加功能如下: array1.map(field => xxxxxx) – KevinHu

回答

0

用法

的foreach:此遍歷列表,並施加與副作用每個列表構件一些操作(例如:保存每個列表項到數據庫)

地圖:此遍歷列表,變換該列表中的每個成員,並返回相同的尺寸的另一個列表與變換件(例如:轉化的字符串列表爲大寫)

參考

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEachhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

0

發現這個基於Web嘗試

var m = new Map(); 
 
m.set(1, "car"); 
 
m.set(2, "bike"); 
 
m.set("colors", 2); 
 
m.set({x:1}, 3); 
 

 
m.forEach(function (item, key, mapObj) { 
 
    document.write(item.toString() + "<br />"); 
 
}); 
 

 
document.write("<br />"); 
 
document.write(m.get(2));