在現代的JavaScript,使不可改變的想法很受歡迎,你實際上並沒有你原來裏面更改值數組而是將映射到這些值的函數並接收新數組。這很容易
const pets = ['dog', 'cat', 'rat'];
const petsPlural = pets.map(pet => `${pet}s`);
它可能壓倒你,所以讓我們解構每個部分。
首先,map
。這是每個數組的屬性並且是一個函數。當你應用它的時候,你提供了一個參數,這個參數又是一個函數,它將一個接一個地應用於原始數組中的每個元素。結果,調用someArray.map
的返回值是一個新數組。最酷的是原始數組(在你的情況下,pets
)沒有改變。它保留了原始值!
接下來,(...) => ...
語法。這是一個arrow function,已經在ES6中引入,並且已經被大多數現代瀏覽器(不是Safari)支持。例如,
(arg1, arg2) => arg1 + arg2
是
function (arg1, arg2) {
return arg1 + arg2
}
最後,是反引號的事情很短的符號。它被稱爲template literal。包含在${
和}
這個字符串中的所有東西都會被計算出來,而任何外部的東西都是按原樣放置的。事實上,當你寫,說
`${abc}def${123}xyz`
它相當於
abc + 'def' + 123 + 'xyz'
因此,在這種情況下,
`${pet}s`
相當於
pet + 's'
你甚至可以看到現在閱讀這部分內容是多麼容易代碼。
請重新閱讀[爲'for'語句文檔(https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for )。 – 2016-08-24 20:06:20
你錯過了對數組的一些理解,而不是循環。關鍵是不要嘗試使用字符串循環。你想循環使用整數,就像你已經知道該怎麼做;在這種情況下,這個整數就是'我'(參見泰勒的答案)。然後,您可以在建議的行中使用'i'來更新每個循環迭代 – Paulpro