是否可以只將數組映射到某個索引?在索引處結束數組映射?
例如,說我有以下幾點:
var nums = [1, 2, 3, 4, 5];
我想在陣列中總結的數字,但最多隻能到3號索引。是否有可能將參數傳遞給Array.map()
只能達到給定的索引?或者這是唯一可能使用for
循環?
是否可以只將數組映射到某個索引?在索引處結束數組映射?
例如,說我有以下幾點:
var nums = [1, 2, 3, 4, 5];
我想在陣列中總結的數字,但最多隻能到3號索引。是否有可能將參數傳遞給Array.map()
只能達到給定的索引?或者這是唯一可能使用for
循環?
只需使用slice。
The slice() method returns a shallow copy of a portion of an array into a new array object selected from begin to end (end not included). The original array will not be modified.
nums.slice(0,3).map(...);
這是一個很好的處理方式,但應該注意那麼'.slice()'會創建一個新的數組,然後在要求的範圍內將元素複製到它中。如果實際問題涉及到一個大的原始數組,並且實際範圍也相當大,則這比使用簡單'for'循環。 – Pointy
可以使用slice()
獲得陣列,直到一個特定的指數
nums.slice(0,3).map();
根據定義,地圖()被調用數組中的每個元素。詳情請參閱文檔here。所以,是的,您需要使用不同的解決方案,例如for循環。
您可以使用slice()
函數,該函數將數組的一部分的淺表副本返回到從開始到結束(未包含結束)中選擇的新數組對象中。原始數組不會被修改。
nums.slice(0,3).map(//your code);
爲什麼您使用的地圖()來總結更多信息
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
? reduce()會更好 – epascarello
對於像你的例子那樣簡單的事情,'nums [0] + nums [1] + nums [2]'是我的選擇。對於更復雜的函數和更大的數組(和子數組),您可能想要使用一個簡單的for循環來創建自己的函數來避免複製和不必要的迭代。 – Pointy
對不起,我的意思是說減少:( – MarksCode