亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在javascript中進行foreach時是否可以更改數組的值?

在javascript中進行foreach時是否可以更改數組的值?

繁花不似錦 2019-10-15 09:19:58
例:var arr = ["one","two","three"];arr.forEach(function(part){  part = "four";  return "four";})alert(arr);數組仍保留其原始值,是否可以通過迭代函數對數組元素進行寫訪問?
查看完整描述

3 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

回調傳遞給元素,索引和數組本身。


arr.forEach(function(part, index, theArray) {

  theArray[index] = "hello world";

});

編輯 —如注釋中所述,該.forEach()函數可以采用第二個參數,該參數將用作this每次對回調的調用中的值:


arr.forEach(function(part, index) {

  this[index] = "hello world";

}, arr); // use arr as this

第二個示例顯示了arr自己this在回調中的設置。有人可能會認為.forEach()調用中涉及的數組可能是的默認值this,但無論出于何種原因,它都不是。this會undefined如果沒有提供第二個參數。


同樣重要的是要記住,Array原型上提供了一整套類似的實用程序,并且在Stackoverflow上彈出了有關一個或另一個功能的許多問題,因此最好的解決方案是簡單地選擇其他工具。你有:


forEach 用于處理數組中的每個條目或對數組中的每個條目執行操作;

filter 用于產生僅包含合格條目的新數組;

map 用于通過變換現有陣列來制作一對一的新陣列;

some 檢查數組中的至少一個元素是否符合某些描述;

every檢查數組中的所有條目是否與描述相匹配;

find 在數組中尋找一個值


查看完整回答
反對 回復 2019-10-15
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

數組:[1, 2, 3, 4]

結果:["foo1", "foo2", "foo3", "foo4"]


Array.prototype.map() 保留原始陣列

const originalArr = ["Iron", "Super", "Ant", "Aqua"];

const modifiedArr = originalArr.map(name => `${name}man`);


console.log( "Original: %s", originalArr );

console.log( "Modified: %s", modifiedArr );

Array.prototype.forEach() 覆蓋原始數組

const originalArr = ["Iron", "Super", "Ant", "Aqua"];

originalArr.forEach((name, index) => originalArr[index] = `${name}man`);


console.log( "Overridden: %s", originalArr );


查看完整回答
反對 回復 2019-10-15
  • 3 回答
  • 0 關注
  • 1539 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號