const numbers = [1, 2, 3, 4];
const filteredNumbers = numbers.map((num, index) => {
if (index < 3) {
return num;
}
});
// filteredNumbers is [1, 2, 3, undefined]
根據我的理解,如果陣列的索引小于 3,回呼函式應該回傳所有數字,所以它應該回傳 1,2,3 并在此之后停止,并且不能回傳數字 4,就好像條件說索引應該小于 3。我想知道為什么它回傳未定義的索引 3 號。
uj5u.com熱心網友回復:
.map 是同構并保留給定陣列的長度。
所以如果回呼函式沒有回傳任何東西,索引將是未定義的。
uj5u.com熱心網友回復:
filter如果您需要過濾滿足特定條件的陣列元素,則需要使用函式。
const numbers = [1, 2, 3, 4];
const filteredNumbers = numbers.filter((_, index) => index < 3);
console.log(filteredNumbers);
uj5u.com熱心網友回復:
如果您只想獲取陣列中的前 3 個專案,我建議使用 slice。
const numbers = [1, 2, 3, 4];
console.log(numbers.slice(0, 3));
第二種解決方案是使用過濾器而不是地圖。
const numbers = [1, 2, 3, 4];
const filteredNumbers = numbers.filter((num, index) => {
return index < 3
});
console.log(filteredNumbers)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/493339.html
標籤:javascript 数组
上一篇:將S3緩沖區資料轉換為PDF檔案
