2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
這是因?yàn)?code>Array.prototype.filter返回一個(gè)數(shù)組。
例如,這兩個(gè)語句是等效的:
[1, 2, 3].filter(function(){
? return false
}).length
和
[].length
這是因?yàn)椋?/p>
[1, 2, 3].filter(function(){
? return false
})
返回[]。
var one = [1, 2, 3].filter(function() {
? return false
}) // Removes all elements from array
var two = []
console.log(one, one.length)
console.log(two, two.length)

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
首先:過濾器函數(shù)迭代每個(gè)待辦事項(xiàng)對(duì)象并返回一個(gè)新的待辦事項(xiàng)對(duì)象列表。
每個(gè) todo 對(duì)象都會(huì)傳遞給您作為參數(shù)提供的函數(shù)(在本例中為匿名函數(shù)),僅當(dāng)該函數(shù)返回 true 時(shí),todo 對(duì)象才會(huì)添加到新列表中。
由于您想知道仍需要完成的待辦事項(xiàng)數(shù)量,因此您返回 !todo.completed,因?yàn)楫?dāng) todo.completed 為 false 時(shí),這將返回 true。
當(dāng)過濾器函數(shù)迭代每個(gè)對(duì)象時(shí),它會(huì)返回新列表,此時(shí)您可以訪問它的長(zhǎng)度。
返回 !todo.completed.lenght 并沒有任何意義,因?yàn)槟噲D獲取布爾值的長(zhǎng)度,而過濾函數(shù)需要 true 或 false。
添加回答
舉報(bào)